我想,你可以縮小你的歷史以下這樣的回答:
How to delete a specific revision of a github gist?
決定其在歷史上指出,要保持。
pick <hash1> <commit message>
pick <hash2> <commit message>
pick <hash3> <commit message> <- keep
pick <hash4> <commit message>
pick <hash5> <commit message>
pick <hash6> <commit message> <- keep
pick <hash7> <commit message>
pick <hash8> <commit message>
pick <hash9> <commit message>
pick <hash10> <commit message> <- keep
然後,在每個「保持」作爲「挑選」後留下第一個,並將其他標記爲「壓扁」。
pick <hash1> <commit message>
squash <hash2> <commit message>
squash <hash3> <commit message> <- keep
pick <hash4> <commit message>
squash <hash5> <commit message>
squash <hash6> <commit message> <- keep
pick <hash7> <commit message>
squash <hash8> <commit message>
squash <hash9> <commit message>
squash <hash10> <commit message> <- keep
然後,通過保存並退出編輯器來運行rebase。在每個「保持」點,消息編輯器將彈出一個組合的提交消息,從前面的「選擇」到「保持」提交。然後,您可以保留最後一條消息,或者將這些消息結合起來記錄原始歷史記錄,而不必保留所有中間狀態。
重新綁定之後,中間文件數據仍將存儲在存儲庫中,但現在未被引用。 git gc
現在確實會讓你擺脫這些數據。
好奇,從你的10Gb項目文件,你能節省多少空間? 2MBS? 25MB還是像200Mgb? – Honey
在我的情況下,存儲庫中90%的文件仍然需要,所以它只能節省10%的空間。 – greggles
你的意思是你保存了1Gb?!或10%與git相關的元數據?這是多少? – Honey