我们希望将特定目录从一个git存储库移动到另一个存储库。我找到了these instructions,直到从远程分支拉出来之前一直很顺利;似乎git-lfs跟踪的双方文件在某种程度上使这个过程复杂化。
我在本地克隆之间直接尝试了这一点,并在分支上执行过滤器分支并将其推送到主服务器(VSTS)。在这两种情况下,涂抹过滤器都失败了,说它无法找到LFS跟踪的文件;使用VSTS远程记录的错误是404。
我希望将这些文件保存为目标中跟踪的LFS,无论是使用本地克隆直接完成移动还是涉及服务器。是否有任何其他命令/开关或准备步骤可以实现此目的?
答案 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
合并,看起来已经给了我们所追求的目标。