【发布时间】:2011-01-15 22:26:11
【问题描述】:
我正在使用git clone --reference 来减少慢速连接上的网络流量。
现在,git-clone 的手册页指出了使用它的危险,并建议 git repack -a 断开链接,我在克隆后立即这样做。
我想知道的是 - 在我完成重新打包后,是否可以安全地删除 .git/objects/info/alternates 或者是否有适当的 git 命令来执行此操作?
谢谢
【问题讨论】:
我正在使用git clone --reference 来减少慢速连接上的网络流量。
现在,git-clone 的手册页指出了使用它的危险,并建议 git repack -a 断开链接,我在克隆后立即这样做。
我想知道的是 - 在我完成重新打包后,是否可以安全地删除 .git/objects/info/alternates 或者是否有适当的 git 命令来执行此操作?
谢谢
【问题讨论】:
请注意,git clone 现在有一个新的--dissociate 选项可以执行此操作。它是在 Git 2.3 中添加的:https://github.com/blog/1957-git-2-3-has-been-released
该选项只是调用git repack -a -d 并删除.git/objects/info/alternates。所以是的,它是安全的。 (来源:https://github.com/gitster/git/commit/d35c8027937546e6b22a2f28123f731c84e3b380)
【讨论】:
--dissociate 将阻止克隆检索 LFS 对象并导致错误。您需要像往常一样执行git clone --reference 并执行运行git repack -a -d 和删除alternates 文件的手动步骤。对于非 LFS 存储库,此答案是最受支持的方法。
好的,所以我发现了。答案是肯定的,直接删除alternatives是安全的。不,没有 git 命令可以做到这一点。
http://thread.gmane.org/gmane.comp.version-control.git/141161/focus=141199
我知道回答你自己的问题还不够,但我们必须继续前进!
【讨论】: