我使用bfg從git倉庫一(克隆)刪除一些子目錄:混帳:使用高爐煤氣重複後--prune空承諾
java -jar bfg-1.12.12.jar --delete-folders {folder1,folder2,folder3} --no-blob-protection myrepo.git/
git reflog expire --expire=now --all && git gc --prune=now --aggressive
這工作不錯,但我已經使用高爐煤氣後,我有許多空提交(即提交良好的日誌消息,但沒有更改,因爲他們只接觸現在已被刪除的文件)。
因此,作爲下一步我試圖用
git filter-branch --commit-filter 'git_commit_non_empty_tree "[email protected]"' HEAD
或
git filter-branch --prune-empty --tag-name-filter cat -- --all
兩個版本沒有收到預期的效果(除去空提交)。
相反,我結束了一個資料庫,其中(見下面的截圖,左邊是修剪前,右邊是後):
- 幾個空的提交已被刪除
- 最空提交保持
- 非空提交被複制在提交
有何建議?
你是如何創建'myrepo.git'的? - 根據BFG指導原則,它是一個裸/鏡像存儲庫嗎? – javabrett
我用'git clone --mirror https://:@git ....'。那是正確的方法嗎? – fuenfundachtzig
是的。在「filter-branch」開始之前,你是否還推回並重新獲取'origin'? – javabrett