問題如下
有時在使用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,在倉庫的設置中可以修改。
到此,大文件已經從倉庫中清除了,重新拉一個倉庫,速度變快了,可以看到倉庫的體積已經變小了,注意:一定要重新拉取倉庫。