哪些操作在共享git存储库上是安全的?

时间:2016-11-29 16:36:53

标签: git

使用--shared选项克隆git存储库时,哪些操作在源存储库中是安全的?具体来说,如果在原始存储库中运行git fetch origin,克隆的存储库是否会损坏?

例如,给定存储库~/repos/foo.git(它是一个简单的git存储库),当我使用git clone --shared ~/repos/foo.git创建新存储库,然后在~/repos/foo.git内部运行{{1} ,克隆的存储库是否会损坏?

1 个答案:

答案 0 :(得分:2)

很难想出一个规范来源,说明git-fetch是否删除了孤立的对象(即,它是否曾触发git gc --auto)。但是如果你想确保自动垃圾收集永远不会运行,你可以将它放在你的裸源代码库的配置中:

git config --global gc.auto 0

这将阻止它自动运行GC。除了auto-gc之外,git-fetch不会删除对象(它可能会删除引用,具体取决于您的配置,但最糟糕的情况是使对象成为孤立的,只要就可以了。你永远不会GC )。 git-fetch的联机帮助页明确地调出了源代表中的任何操作都没有问题,只要它们不删除现有对象。