2
由於歷史記錄中有大型文件,我的存儲庫非常龐大。爲了找到大文件和刪除它們,我執行:在git存儲庫歷史記錄中查找大文件失敗
$ git verify-pack -v .git/objects/pack/pack-..e8a.idx | sort -k 3 -n | tail -3
,結果是一樣的東西:
12eb660ea206e1b7bd42cb8b525aabe9e86a5064 blob 56413247 15833578 5889838
89b377ace5639c0914bb49d28d0c8e97b0f19a16 blob 56414112 15833631 81736530
4ea83fb57b49f7afdbe99e4f043509d184338f5b blob 56426618 15837504 48628334
要找到最大的文件的路徑,我跑:
$ git rev-list --objects --all | grep 4ea83fb57b49f
,其結果是:
4ea83fb57b49f7afdbe99e4f043509d184338f5b path/to/my/large_file
但是,當我在這個文件中像運行git log
:
$ git log --oneline --branches -- path/to/my/large_file
不顯示任何日誌。 此外,每當我試圖從歷史中刪除二進制文件:
$ git filter-branch --index-filter \
'git rm --ignore-unmatch --cached path/to/my/large_file'
我收到:
WARNING: Ref 'refs/heads/master' is unchanged
任何想法?
謝謝,長話短說一個簡單的答案。 :)我的錯誤沒有使用 - 所有在'git filter-branch'結尾。糾正你的答案,所以我可以接受它。 – hsalimi
很高興它有幫助。實際上我發佈的'filter-branch'命令已經包含了--all參數。 – mcns7