如何在git clone - reference之后分离交替?

Ste*_*lly 29 git clone

我正在使用git clone --reference通过慢速连接减少网络流量.

现在,git-clone的手册页指出了使用它的危险并建议git repack -a打破链接,我在克隆之后立即做了.

我想知道的是 - 在我完成重新包装后,是否可以安全地删除.git/objects/info/alternates或是否有适当的git命令来执行此操作?

谢谢

小智 26

请注意,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)

  • 如果使用的是Git LFS,则`--dissociate`将阻止克隆检索LFS对象并导致错误。您将需要照常执行`git clone --reference`,并执行运行`git repack -a -d`并删除`alternates`文件的手动步骤。对于非LFS存储库,此答案是执行此操作的最佳支持方法。 (2认同)

Ste*_*lly 22

好的,所以我发现了.答案是肯定的,直接删除替代品是安全的.不,没有git命令来做到这一点.

http://thread.gmane.org/gmane.comp.version-control.git/141161/focus=141199

我知道回答你自己的问题不是完成的事情,但我们必须继续前进!

  • 仅供参考,[可以提出并回答您自己的问题](http://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/). (3认同)
  • 事实上,我很感激你记录了答案,而不仅仅是继续前进. (3认同)