git倉庫清理找了很多資料和方案都沒有很完美執(zhí)行成功的;現(xiàn)在找到一個完美方案,分享給大家;希望能幫助大家
問題
1、gitlab代碼開發(fā)了倉庫開發(fā)了五年了,代碼只有10M;clone的時候要700多兆很浪費(fèi)時間
2、創(chuàng)建分支和切換分支耗時,導(dǎo)致電腦崩潰
3、公司內(nèi)部接入codereview服務(wù);因?yàn)轫?xiàng)目過大服務(wù)器承載不了,接入失敗
git倉庫過大的原因:
1、歷史提交的文件,后來刪除了,但是.git\objects\pack還會記錄保持這些文件
2、git rev-list --objects --all | grep “$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -500 | awk ‘{print$1}’)”
執(zhí)行上面命令,查看前500個大文件;發(fā)現(xiàn)全是dist目錄的文件上傳有2000多個
解決方案:
方案一:(2個小時耗時,不保證成功)
下面通用方案不行了;這種方法清理非常耗時而且代碼分支多的不容易成功
清理文件
git filter-branch --force --index-filter "git rm -rf --cached --ignore-unmatch 文件/文件夾" --prune-empty --tag-name-filter cat -- --all
# 查看歷史大文件
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -5 | awk '{print$1}')"
# 從歷史中刪除 target/ 這個文件夾
git filter-branch --force --index-filter 'git rm -r --cached --ignore-unmatch target/' --prune-empty --tag-name-filter cat -- --all
# 執(zhí)行倉庫壓縮
git gc --prune=now
# 推送到遠(yuǎn)程倉庫
git push origin --force --all
推薦方案二BGF工具清理:(親測有效10分鐘搞定)
必備條件
1、安裝java環(huán)境(java安裝教程)
2、下載好bfg的jar包 (下載鏈接-官網(wǎng)右上角 download 按鈕進(jìn)行下載);
第一步:克隆你的項(xiàng)目.git文件
加–mirror是只clone你項(xiàng)目的.git文件
第二步:把你下載的bfg的jar包復(fù)制到這個項(xiàng)目同目錄下
第三步:執(zhí)行命令查看大文件的目錄(500個文件)
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -500 | awk '{print$1}')"
第四步:最重要的一步
java -jar bfg-1.14.0.jar --delete-folders {dist} --no-blob-protection frontend_saas.git
一分鐘左右1500個dist目錄里的文件會全部清除很快;比git filter-branch兩個小時快多了文章來源:http://www.zghlxwxcb.cn/news/detail-783687.html
第五步:執(zhí)行GC壓縮
git reflog expire --expire=now --all && git gc --prune=now --aggressive
第六步:推送到遠(yuǎn)程
git push --mirror
第七步:注意項(xiàng)目開發(fā)的的小伙伴要全部重新clone項(xiàng)目開發(fā);注意一定不能在原來400多兆都是項(xiàng)目里開發(fā)提交,這樣項(xiàng)目的垃圾文件又會恢復(fù),前功盡棄;
文章來源地址http://www.zghlxwxcb.cn/news/detail-783687.html
總結(jié):到這里就大功告成了;446M的項(xiàng)目清理之后只有23.7M干凈很多;
到了這里,關(guān)于git倉庫清理瘦身解決 .git文件夾過大的問題的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!