Git 中刪除誤上傳的大文件

問題如下

有時在使用Git的時候無意間上傳了一個比較大的文件,並且已經提交到服務器上了,導致每次從Git服務器上拉代碼都非常慢。這時可以考慮清除這個大文件,從而爲Git倉庫瘦身。

下載 bfg

bfg 是一個 Git 清理工具,下載地址爲:
https://rtyley.github.io/bfg-repo-cleaner/
下載下來是一個jar包,我們把他保存到本地,如:D:/temp/bfg/。

實現步驟

1、使用 git 命令刪除要刪除的大文件,如:larg.zip,然後提交併推送
2、cmd 進入 D:/temp/cfg 目錄,cd D:/temp/bfg
3、鏡像Git倉庫,使用以下命令:

git clone --mirror http://172.16.10.13/chenmingjian/test-project.git

4、繼續輸入以下命令:

java -jar bfg-1.13.0.jar --delete-files larg.zip test-project.git

5、這裏可以看到大文件已經找到,並顯示文件的相關信息。
6、進入倉庫目錄

cd test-project.git

7、輸入以下命令:

git reflog expire --expire=now --all && git gc --prune=now --aggressive

8、然後推送:

git push

注:這一步可能會收到錯誤,原因是protected的分支不能進行覆蓋推送,可以首先把當前分支修改爲unprotected,在倉庫的設置中可以修改。

到此,大文件已經從倉庫中清除了,重新拉一個倉庫,速度變快了,可以看到倉庫的體積已經變小了,注意:一定要重新拉取倉庫。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章