将git目录从一个启用LFS的repo移动到另一个(也是LFS)

时间:2018-03-18 16:02:18

标签: git git-lfs

我们希望将特定目录从一个git存储库移动到另一个存储库。我找到了these instructions,直到从远程分支拉出来之前一直很顺利;似乎git-lfs跟踪的双方文件在某种程度上使这个过程复杂化。

我在本地克隆之间直接尝试了这一点,并在分支上执行过滤器分支并将其推送到主服务器(VSTS)。在这两种情况下,涂抹过滤器都失败了,说它无法找到LFS跟踪的文件;使用VSTS远程记录的错误是404。

我希望将这些文件保存为目标中跟踪的LFS,无论是使用本地克隆直接完成移动还是涉及服务器。是否有任何其他命令/开关或准备步骤可以实现此目的?

2 个答案:

答案 0 :(得分:0)

根据repository clone times-out lfs files cannot be retrieved #1181

  

在这两种情况下,涂抹过滤器都失败了,说它找不到LFS跟踪的文件;使用VSTS远程记录的错误是404。

这意味着服务器上不存在这些文件。您可以尝试查找包含该存储库的存储库的本地克隆,然后运行git lfs push REMOTE_NAME --all

在将它们推送到新的Git存储库之前,您可能需要执行git lfs fetch --all来下载所有LFS跟踪的文件。

答案 1 :(得分:0)

(在正确的方向提升了另一个答案,尽管我的新手代表没有表现出来。)

这里的密钥似乎是git lfs fetch --all,然后分支并运行filter-branch,按照文章中的描述移动和提交。看起来LFS并不打算在本地克隆之间工作;反转过程以便push到目标克隆也导致错误,但是当它推送到目标仓库的远程服务器时它确实有效。

从那里,获取目标克隆并与--allow-unrelated-histories合并,看起来已经给了我们所追求的目标。

相关问题