使用--shared
选项克隆git存储库时,哪些操作在源存储库中是安全的?具体来说,如果在原始存储库中运行git fetch origin
,克隆的存储库是否会损坏?
例如,给定存储库~/repos/foo.git
(它是一个简单的git存储库),当我使用git clone --shared ~/repos/foo.git
创建新存储库,然后在~/repos/foo.git
内部运行{{1} ,克隆的存储库是否会损坏?
答案 0 :(得分:2)
很难想出一个规范来源,说明git-fetch
是否删除了孤立的对象(即,它是否曾触发git gc --auto
)。但是如果你想确保自动垃圾收集永远不会运行,你可以将它放在你的裸源代码库的配置中:
git config --global gc.auto 0
这将阻止它自动运行GC。除了auto-gc之外,git-fetch
不会删除对象(它可能会删除引用,具体取决于您的配置,但最糟糕的情况是使对象成为孤立的,只要就可以了。你永远不会GC )。 git-fetch
的联机帮助页明确地调出了源代表中的任何操作都没有问题,只要它们不删除现有对象。