我需要從git歷史記錄中刪除一些過時的文件,因此我遵循使用「git filter-branch ...」的方法在各種問題和git手冊中提出。運行這個命令後,我現在看到我的「git log」中所有重寫的提交,所以我現在有大約30次提交(刪除3個文件後)而不是最初的10次提交。如何清理git過濾器分支後git中過時的重寫提交
我嘗試了在各種答案中提供的建議,以刪除「.git/refs/originals」,然後「git reflog expire ...」和「git gc --aggressive --prune」等,但我仍然有30次提交。我也嘗試了將我的存儲庫複製到新存儲庫的建議,新存儲庫也有30個提交。我也推到github,現在有30個提交。
是否有任何我想丟掉覆蓋的提交(沒有做rebase操作)。我的目標是隻擺脫「重複」提交,而不是壓縮提交。
謝謝!
我特別不想手代碼rebase命令,因爲我將不得不櫻桃選擇所有原始提交,通過重新合併衝突等我想要的是一種方法來擦除舊的提交被重寫。 – rraheja 2011-05-13 04:30:39
將過期時間設置爲0後,可以通過運行git gc來忘記舊提交。一旦刪除了舊提交的所有引用,那些對象將被垃圾收集。 – 2011-05-14 00:24:59