2017-02-20 58 views
1

This page說以下內容:Git的GC機制 - 沒關係吧標籤註釋或輕

最終,Git會決定它的時間來執行垃圾收集。 (你可以自己觸發這個過程,使用git gc。)從 每個分支開始,每個標記,Git回到圖中,建立 它可以到達的每個提交列表。一旦達到每條路徑的末尾 ,它將刪除它未訪問的所有提交。

它是否尋找註釋或輕量級標籤?

我正在工作沒有分支標記提交,只是好奇如果有任何機會我的提交將垃圾收集。

回答

1

引用的參考文獻確實說每個標籤,這已經暗示輕量級和註釋標籤都被考慮在內。該權威人士是git-gcman page,其中指出它是這樣的:

混帳GC試圖很難不刪除在你的資料庫的任何地方引用的對象。特別是,它不僅會保留你當前的一組分支和標記所引用的對象,還會保留索引引用的對象,遠程追蹤分支,保存的引用git filter-branch in refs/original /,或reflogs(可能引用了後來修改或倒帶的分支中的提交)。如果您希望某些對象被刪除而不是,請檢查所有這些位置,並決定在您的情況下刪除這些引用是否有意義。

換句話說,git是非常小心地慎之又慎的一側,避免刪除任何可能被認爲是有用的。刪除通過用戶自己創建的標籤可訪問的對象將構成一個非常嚴重的數據丟失錯誤。

+0

好吧,明白了,謝謝,只是想確認 –

+0

@Maximus沒問題。我現在已經從git文檔中添加了更多的引用,希望更清楚地說明'git gc'將盡其所有功能*而不是*丟棄有用的數據。 – user4815162342

+0

是的,它是有道理的,gl –