簡體   English   中英

試圖刪除git中的大文件-無法刪除轉速表參考

[英]trying to remove large file in git — can't remove rev-list reference

我正在嘗試從git repo歷史記錄中完全刪除一些非常大的文件。 我已經嘗試過幾乎所見過的所有解決方案,但是我永遠無法使大文件對象“無法訪問”,以便將它們垃圾回收。 以下是我嘗試過的內容:

    # finding the largest file
$ git verify-pack -v .git/objects/pack/pack-*.idx | sort -k 3 -n | tail -1
3d975c0908cde6010cbfcd0424eaf74c9dcf9f13 blob   1314240900 19175430 50462430

    # which file?
$ git rev-list --objects --all | grep  3d975c09
3d975c0908cde6010cbfcd0424eaf74c9dcf9f13 rawdata/brownfields/GEODATA_Featureclass_MAR2013.dbf

$ git filter-branch -f --tree-filter 'git rm -fr --cached --ignore-unmatch rawdata'
$ git reflog expire --expire=now --verbose --all
$ git gc --aggressive --prune=now
$ git prune --expire now

$ git rev-list --objects --all | grep  3d975c09
3d975c0908cde6010cbfcd0424eaf74c9dcf9f13 rawdata/brownfields/GEODATA_Featureclass_MAR2013.dbf

我非常有信心,已經從歷史記錄中清除了該文件,但rev-list中的此討厭引用除外 ,這是不允許對其進行垃圾收集的原因。

如果此對象出現在rev-list中,是否確實將永遠不會將其刪除? 如果是這樣,如何從修訂列表中刪除其引用? 我嘗試了很多不同排列的命令,但都沒有用。 任何見解將不勝感激。

原來,我有一個舊標簽仍在引用大文件,並且不知道filter-branch對標簽不起作用。 這個答案使我朝着正確的方向前進。

簡而言之,我需要在filter-branch添加--tag-name-filter [tag]選項

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM