2016-06-10 85 views
0

讓我驚訝的是,如何刪除一次並覆蓋新文件的文件可以隨時在我們想要的時候檢索。 Git會永久存儲服務器上的每個文件實例嗎?Git如何檢索從本地和遠程存儲庫中刪除的已刪除文件?

+2

存儲與每次提交相關的每個文件的每個版本都是版本控制系統的*目的*。有關內部信息,請參閱Pro Git書https://git-scm.com/book/en/v2/。 – torek

+0

我明白了。我只是想知道這是如何完成的。 –

+0

細節變得越來越複雜,但http://stackoverflow.com/a/8267078/1256452有一個很好的概述(儘管沒有插圖)。 – torek

回答

1

這是我的理解。 Git將blob存儲爲散列名稱。一個文件存儲爲一個散列列表,並通過對它組成的blob進行協調(對於小文件通常只有一個blob)而在工作樹上創建。不同版本的同一個文件可以通過協調不同的blob來完成。 Blob存儲在.git目錄中,只要存在對它們的引用即可保留。即如果任何標籤,提交,reflog,存儲等包含引用blob的文件(或其他)。 'git gc'會刪除兩週以上的未引用的blob。

相關問題