将 git 目录从一个支持 LFS 的仓库移动到另一个(也是 LFS)
Move git directory from one LFS-enabled repo to another (also LFS)
我们希望将特定目录从一个 git 存储库移动到另一个。我找到了 these instructions,直到从远程分支拉取点为止,一切顺利; git-lfs 跟踪两侧的文件似乎使过程变得有些复杂。
我直接在我的本地克隆之间尝试了这个,以及在分支上执行过滤器分支并将其推送到主服务器 (VSTS)。在这两种情况下,污迹过滤器都失败了,说它找不到 LFS 跟踪的文件;使用 VSTS 远程时,记录的错误是 404。
我想将这些文件作为 LFS 在目标中跟踪,无论移动是直接使用本地克隆还是涉及服务器。是否有任何额外的 commands/switches 或准备步骤可以做到这一点?
根据repository clone times-out lfs files cannot be retrieved #1181
In both cases the smudge filter failed, saying it couldn't find the LFS-tracked file; with the VSTS remote the error logged is a 404.
表示服务器上不存在这些文件。您可以尝试找到该存储库的本地克隆,并且 运行 git lfs push REMOTE_NAME --all
.
您可能需要执行 git lfs fetch --all
以下载所有 LFS-tracked 文件,然后再将它们推送到新的 Git 存储库。
(在正确的方向上对提示的另一个答案进行了投票,尽管我的新手代表不会显示它。)
这里的关键似乎是 git lfs fetch --all
在分支之前和 运行 filter-branch
,按照文章中的描述移动和提交。看起来 LFS 并不打算在本地克隆之间工作;反转过程以 push
到目标克隆也导致错误,但在为目标 repo 推送到远程服务器时它确实有效。
从那里,获取目标克隆并与 --allow-unrelated-histories
合并看起来已经给了我们想要的东西。
对我来说,最简单的方法是分叉存储库(这意味着在服务器端)
我们希望将特定目录从一个 git 存储库移动到另一个。我找到了 these instructions,直到从远程分支拉取点为止,一切顺利; git-lfs 跟踪两侧的文件似乎使过程变得有些复杂。
我直接在我的本地克隆之间尝试了这个,以及在分支上执行过滤器分支并将其推送到主服务器 (VSTS)。在这两种情况下,污迹过滤器都失败了,说它找不到 LFS 跟踪的文件;使用 VSTS 远程时,记录的错误是 404。
我想将这些文件作为 LFS 在目标中跟踪,无论移动是直接使用本地克隆还是涉及服务器。是否有任何额外的 commands/switches 或准备步骤可以做到这一点?
根据repository clone times-out lfs files cannot be retrieved #1181
In both cases the smudge filter failed, saying it couldn't find the LFS-tracked file; with the VSTS remote the error logged is a 404.
表示服务器上不存在这些文件。您可以尝试找到该存储库的本地克隆,并且 运行 git lfs push REMOTE_NAME --all
.
您可能需要执行 git lfs fetch --all
以下载所有 LFS-tracked 文件,然后再将它们推送到新的 Git 存储库。
(在正确的方向上对提示的另一个答案进行了投票,尽管我的新手代表不会显示它。)
这里的关键似乎是 git lfs fetch --all
在分支之前和 运行 filter-branch
,按照文章中的描述移动和提交。看起来 LFS 并不打算在本地克隆之间工作;反转过程以 push
到目标克隆也导致错误,但在为目标 repo 推送到远程服务器时它确实有效。
从那里,获取目标克隆并与 --allow-unrelated-histories
合并看起来已经给了我们想要的东西。
对我来说,最简单的方法是分叉存储库(这意味着在服务器端)