git 捆绑创建重复引用

git bundle creating duplicate refs

我正在尝试使用 git 包来创建本地存储库的备份。我 运行 下面在源机器上创建包。

git bundle create myback.bundle mybranch --all

我正在使用 all 参数,因为我想备份源机器上的所有分支。

当我在备份机器上验证这个包时,我看到重复的引用似乎阻止我从包中克隆。请参阅下面的 "mybranch" 是重复的。

5e6e24e00edb98e5c12af39ef9ed895106600d69 refs/heads/mybranch 5e6e24e00edb98e5c12af39ef9ed895106600d69 refs/heads/mybranch d97386c728189eed6acbd39ca4385e1c75c5ff22 refs/heads/otherbranch 6d81c25f0fc2e59303d66340d5b56141de20a6cf refs/heads/br3 e7fdaff9c298784dc19f3f42922541f2b8eb81f0 refs/heads/master 7deee21ec20e7e57183e362a49895022df4acdab refs/heads/br4 ec11a354241c61a71ca922f41118e3e83f911e28 refs/remotes/origin/br1 970e3949edbe7a7846e3d80e9633b3f1a4e40bc6 refs/remotes/origin/mybranch e7fdaff9c298784dc19f3f42922541f2b8eb81f0 refs/remotes/origin/br4

在源机器上,当 运行

时我没有看到重复的引用

git show-ref

知道这个重复的 ref 是如何进入 bundle 的吗?

--all 参数获取包括 mybranch 在内的所有分支,因此通过同时指定您要求 git 捆绑包含它两次的分支。我已经尝试从您的命令行中删除 mybranch 并获得所有分支,包括 mybranch,没有重复。

在我自己的测试中(Git 2.4.0 on Linux),重复的 ref 只会在我克隆包时发出警告。我想知道为什么它会导致您实际失败。无论如何,我希望只使用 --all 就能解决你的问题。