2016-11-29 84 views
0

使用--shared選項克隆git存儲庫時,哪些操作在源存儲庫上安全?特別是,如果在原始存儲庫中運行git fetch origin,克隆的存儲庫是否會損壞?共享git存儲庫上的哪些操作是安全的?

例如,給定資料庫~/repos/foo.git(它是一個裸露的git倉庫),當我創建使用git clone --shared ~/repos/foo.git新的存儲庫,然後裏面~/repos/foo.git我跑git fetch origin,可以克隆庫成爲腐敗?

回答

2

很難想出一個規範的來源,說明git-fetch是否刪除孤立的對象(即,如果它曾經觸發git gc --auto)。但是如果你想確保自動垃圾回收從不運行時,你可以在你裸露的,源庫的配置堅持這樣的:

git config --global gc.auto 0 

這將防止它自動運行GC。除auto-gc之外,git-fetch不會刪除對象(它可能會根據您的配置刪除引用,但最糟糕的是將對象設置爲孤立,只要您從未GC)。 git-fetch的聯機幫助頁明確指出,只要不刪除現有對象,源代碼回購中的任何操作都可以。

相關問題