git 倉庫體積過大,如何減辛⑷蟆狂窑?

使用git filter-branch

徹底刪除git中的文件(包括歷史提交記錄)
(1)查看存儲庫中的大文件:
git rev-list --objects --all | grep "$(git verify-pack -v .git/objects/pack/*.idx | sort -k 3 -n | tail -15 | awk '{print$1}')"
(2)改寫歷史,去除大文件:

注意:下方命令中的 path/to/large/files 是大文件所在的路徑桑腮,千萬不要弄錯蕾域!

Git這么強大,肯定是存在可以永久刪除歷史記錄的命令到旦,找了一圈,發(fā)現(xiàn)確實有“后悔藥”命令巨缘,那就是git filter-branch添忘,通過以下命令,就可以永久刪除你想要刪除的任何文件若锁,

  • 比如:path/to/large/files 替換成 IPADir/Debug/Lhahahahagolf.ipa
    4cb60a1eec75fbca3662f6721095c2 IPADir/Debug/Lhahahahagolf.ipa
    9f9ec0b483fe8465a818c8f0eb18d6 IPADir/Debug/Lhahahahagolf.ipa
    1bf776b4d09e2291b9d6ac8656ea1 Pods/AMapLocation-NO-IDFA/AMapLocationKit.framework/AMapLocationKit
git filter-branch --tree-filter 'rm -f path/to/large/files' --tag-name-filter cat -- --all

path/to/large/files替換為刪除文件的相對路徑搁骑,并執(zhí)行,如果有以下執(zhí)行反饋Ref 'refs/heads/master' was rewritten又固,說明刪除成功了仲器。

b0m7r1c3g6.png

如果在 git filter-branch 操作過程中遇到如下提示,需要在 git filter-branch 后面加上參數(shù) -f (出現(xiàn)這個錯誤的原因是仰冠,第一次操作成功后發(fā)現(xiàn)倉庫大小并沒有減少(可能還增大了)乏冀,便進行了第二次操作)

提示:
Cannot create a new backup.
A previous backup already exists in refs/original/
Force overwriting the backup with -f

// 需要在 `git filter-branch` 后面加上參數(shù) `-f`
git filter-branch -f --tree-filter 'rm -f IPADir/Debug/Lhahahagolf.ipa' --tag-name-filter cat -- --all

并告知所有組員,push 代碼前需要 pull rebase洋只,而不是 merge辆沦,否則會從該組員的本地倉庫再次引入到遠程庫中,導致倉庫在此被 Gitee 系統(tǒng)屏蔽识虚。

(3)這樣的刪除并不徹底肢扯,隨時可以恢復文件。
// 但這樣的刪除并不徹底担锤,隨時可以恢復文件蔚晨。
$ git reset refs/original/refs/heads/master --hard
or
$ git reflog&&git checkout $commit-SHA1
(4)因此,需要在步驟(2)git filter-branch之后肛循,繼續(xù)執(zhí)行:
$ git filter-branch -f --tree-filter "rm -f config/test.c" # 個人更使用喜歡參數(shù)為--index-filter,--all filtered all refs铭腕; --tag-name-filter cat 刪除原始tag
<br>#回收內(nèi)存的操作
$ rm .git/refs/original/refs/heads/master # $ rm .git/refs/original 刪除git的備份
 
$ git reflog expire --all --expire=now  #使所有散落的object失效
 
$ git fsck --unreachable #檢查是否有散落的object, 驗證數(shù)據(jù)庫中對象的連接性和有效性
 
$ git gc --prune=now #git的垃圾清理車最終刪除那些對象  git gc --aggressive --prune=now , --aggressive 此選項將導致git gc更積極地優(yōu)化存儲庫银择,但代價是花費更多時間。\<br>--prune=<date> Prune loose objects older than date 修剪比日期更早的松散物體谨履』渡悖可以在此之前執(zhí)行 git repack -A -d 在存儲庫中打包解壓縮的對象。 刪除冗余的對象$ git fsck #檢查是否還有對應(yīng)的object笋粟,現(xiàn)在已經(jīng)找不到提交的sha1了
(5)查看文件大小
du -ah .git/objects
(6) 項目根目錄 隱藏文件.git文件占用存儲空間變小了:(command + shift + .)點:“.”

執(zhí)行以上命令怀挠,就會發(fā)現(xiàn).git目錄變小了。那么接下來只要把本地的記錄害捕,強制更新到遠程倉庫就行了绿淋。

(7)強制推到倉庫: 提交變動

注意:強制更新是一個非常危險的動作,一定要確保你的本地內(nèi)容是最新的尝盼,已經(jīng)沒有人在你之后提交了代碼吞滞,否則會將其它的人提交的代碼也一并刪除了。

$ git push origin --tags --force
$ git push origin --all --force


# 其中master為你要推送的分支
// git push origin master --force
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末盾沫,一起剝皮案震驚了整個濱河市裁赠,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌赴精,老刑警劉巖佩捞,帶你破解...
    沈念sama閱讀 212,542評論 6 493
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異蕾哟,居然都是意外死亡一忱,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,596評論 3 385
  • 文/潘曉璐 我一進店門谭确,熙熙樓的掌柜王于貴愁眉苦臉地迎上來帘营,“玉大人,你說我怎么就攤上這事逐哈》移” “怎么了?”我有些...
    開封第一講書人閱讀 158,021評論 0 348
  • 文/不壞的土叔 我叫張陵昂秃,是天一觀的道長薯鼠。 經(jīng)常有香客問我,道長械蹋,這世上最難降的妖魔是什么出皇? 我笑而不...
    開封第一講書人閱讀 56,682評論 1 284
  • 正文 為了忘掉前任,我火速辦了婚禮哗戈,結(jié)果婚禮上郊艘,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好纱注,可當我...
    茶點故事閱讀 65,792評論 6 386
  • 文/花漫 我一把揭開白布畏浆。 她就那樣靜靜地躺著,像睡著了一般狞贱。 火紅的嫁衣襯著肌膚如雪刻获。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,985評論 1 291
  • 那天瞎嬉,我揣著相機與錄音蝎毡,去河邊找鬼。 笑死氧枣,一個胖子當著我的面吹牛沐兵,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播便监,決...
    沈念sama閱讀 39,107評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼扎谎,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了烧董?” 一聲冷哼從身側(cè)響起毁靶,我...
    開封第一講書人閱讀 37,845評論 0 268
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎逊移,沒想到半個月后预吆,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,299評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡螟左,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,612評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了觅够。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片胶背。...
    茶點故事閱讀 38,747評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖喘先,靈堂內(nèi)的尸體忽然破棺而出钳吟,到底是詐尸還是另有隱情,我是刑警寧澤窘拯,帶...
    沈念sama閱讀 34,441評論 4 333
  • 正文 年R本政府宣布红且,位于F島的核電站,受9級特大地震影響涤姊,放射性物質(zhì)發(fā)生泄漏暇番。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,072評論 3 317
  • 文/蒙蒙 一思喊、第九天 我趴在偏房一處隱蔽的房頂上張望壁酬。 院中可真熱鬧,春花似錦、人聲如沸舆乔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,828評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽希俩。三九已至吊宋,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間颜武,已是汗流浹背璃搜。 一陣腳步聲響...
    開封第一講書人閱讀 32,069評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留盒刚,地道東北人腺劣。 一個月前我還...
    沈念sama閱讀 46,545評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像因块,于是被迫代替她去往敵國和親橘原。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,658評論 2 350

推薦閱讀更多精彩內(nèi)容