我有一個回購協議是(開始)爲5.6G大小:Git永久刪除文件不會導致較小的回購?
[email protected] ~/repo (master)
$ du -d 0 -h
5.6G .
然而,這種回購包含了一些不再需要在回購大型二進制文件。最初他們在目錄結構中的不同位置,但都被命名爲「tc.dat」。作爲「清理」的步驟,我創建了一個cruft
目錄,git mv
所有的人都到這個克魯夫特目錄,改變自己的名字tc.dat1
,tc.dat2
等
然後我有這些文件的5,tc.dat1
通過tc.dat5
然後我跟着this question,並使用filter-branch
以及清理步驟來刪除cruft
目錄中的這些文件的所有實例。但是,這仍然會在回購中留下原始文件名(在遷入cruft
之前)。然後我重複步驟從原來的位置在所有提交中刪除,並重新做了清理步驟:
rm -rf .git/refs/original/ && git reflog expire --all && git gc --aggressive --prune
做完這一切,如果我做一個
git log --all -- tc*.dat
我看到在沒有比賽我歷史,表明他們完全被刪除。但是,當我再次執行du
時,回購的規模仍然是5.6G。鑑於這些文件包含大約0.5GB,我希望看到這個數字下降。
我錯過了什麼?
會http://stackoverflow.com/questions/2116778/reduce-git-repository-size/2116892#2116892(及其提及的問題)有幫助嗎? – VonC 2012-08-17 16:56:41