所以我們有一個用戶添加,然後在她的工作區中刪除一個大的文件目錄它有兩個不同的提交。然後,她將自己的變化推向了中央回購站,並且最終用戶看起來像是一個noop。問題是我們的中央倉庫因此大小增加了50倍。我已經嘗試過濾分支的幾件事情,它只是不工作。從git倉庫中刪除一個提交的內容,它已經被git -rm處理並且被推送
因此,添加的文件夾位於根級別。它的名字叫。核心
我曾嘗試基於鏈接以下過濾器分支:我已經試過像看起來
http://dound.com/2009/04/git-forever-remove-files-or-folders-from-history/
Remove a directory permanently from git
最後的命令這個:
git filter-branch -f --index-filter "git rm -rf --cached --ignore-unmatch .core" --prune-empty --tag-name-filter cat -- --all
rm -Rf .git/refs/original
rm -Rf .git/refs/logs
git reflog expire --expire=now --all && git gc --prune=now --aggressive
結果輸出表示Ref未更改。我已經嘗試將.core的引用更改爲諸如./.core,* .core/*等各種變體,但沒有任何內容被刪除。
謝謝。
出於好奇:這個工具會重寫歷史嗎?如果我要檢查提交的問題,Git會如何將大文件傳遞給我? –
好的,我們使用BFG來清理大斑點,從來沒有在文件夾上嘗試過。我可以證實這個作品非常好。請注意,使用bfg-1.12.3時出現錯誤輸出: /gitstore/repositories/test/root.git.bfg-report/2015-04-22/11-02-43 線程中的異常「main」java.io.IOException:No such file or directory at java.io.UnixFileSystem.createFileExclusively(Native Method) at java.io.File.createNewFile(File.java:900) at scalax.io.support .FileUtils $$ anonfun $ $ scalax IO $ $支持fileutils中$$預開$ 1.適用(FileUtils.scala:66) – Peter