2025年6月2日 星期一

臨時解決 git pull/push 越來越慢的狀況

同步公司專案時間久了,git 相關操作就會越來越慢,有一說是分支或合併紀錄多了,需要比對的

差異也多了,後期就會越來越慢...



其實,上一次我覺得慢的時候是等大概手上專案任務告一段落後,直接砍掉本機的 repos,

然後重拉即可,這樣乾淨快速


但有時候就無法直接先刪除,所以問了AI,有沒有方法可以稍微解決這種狀況,

給了我一些提示,可以使用 git gc,這是壓縮本機git 紀錄的指令,語法如下,

但直接這個可能會需要花一點時間,畢竟要計算並且合併一些資源


> git gc --prune=now --aggressive


另外,再使用之前可以先透過以下指令觀察目前repos 的容量

> git count-objects -vH


使用後可以看到以下輸出結構


各欄位表示

  • count: 28 - 表示有 28 個 loose objects(鬆散物件)

  • size: 132.80 KiB - 上面 28 個鬆散物件總共佔用的空間是 132.80 KiB

  • in-pack: 1443664 - Git 已經將 1,443,664 個物件 打包進 pack 檔中

  • packs: 1 - 所有這些物件都被打包在 1 個 pack 檔案 裡

  • size-pack: 5.15 GiB - 這個 pack 檔案的總體積為 5.15 GiB

  • prune-packable: 0 - 表示沒有「鬆散物件」是可以被打包的

  • garbage: 0、size-garbage: 0 bytes - 沒有垃圾物件,也就是說 .git 裡沒有損壞或遺失參照的物件



執行壓縮後,packs 變多了, size-pack 稍微降一點,反倒是 in-pack 增加了一些


沒有留言:

張貼留言