如何将带有 LFS 文件的 git 存储库传输到另一个存储库?

J4N*_*J4N 1 git git-lfs azure-devops git-lfs-migrate

我们有一个本地 git 服务器,带有 LFS 文件。我们计划将所有内容迁移到 MS Azure DevOps 上。经过一些研究,我读到建议进行“镜像”克隆,以拥有所有内容(至少是标签):

git 克隆 --mirror

然后,由于我有一些 LFS 文件,我也想获取它们:

git lfs fetch --all

但我收到这个错误:

Error: Failed to call git rev-parse --git-dir --show-toplevel: "fatal: this operation must be run in a work tree\n"
Not in a git repository.
Run Code Online (Sandbox Code Playgroud)

对于我正在阅读的内容, git lfs fetch 在存储库上不起作用bare(并不是说我知道这是什么,但我认为它与该--mirror选项有关。

所以我的问题是:我应该怎么做才能将所有内容转移到这个新存储库?(此后本地服务器将关闭)。

谢谢

Leo*_*SFT 8

我应该怎么做才能将所有内容转移到这个新存储库?(此后本地服务器将关闭)。

这是因为git-lfsgit 用于bare存储库的默认目录名称之间不兼容。

要解决此问题,您可以尝试使用以下 git 命令:

git clone --bare https://xxx/xxx/old-repository.git
cd old-repository.git
git lfs fetch --all
git push --mirror https://xxx/xxx/new-repository.git
git lfs push --all https://xxx/xxx/new-repository.git
Run Code Online (Sandbox Code Playgroud)

您可以查看此文档镜像包含 Git 大文件存储对象的存储库以了解一些详细信息。