亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

git gc --aggressive與git repack

git gc --aggressive與git repack

Git
瀟瀟雨雨 2019-11-23 13:24:59
我正在尋找減少git存儲庫大小的方法。搜索將我帶入git gc --aggressive大多數時間。我還讀到這不是首選方法。為什么?如果正在跑步,我應該注意些什么gc --aggressive?git repack -a -d --depth=250 --window=250建議超過gc --aggressive。為什么?如何repack減少存儲庫的大?。苛硗?,我對標志--depth和還不太清楚--window。我應該在gc和之間選擇什么repack?什么時候應該使用gc和repack?
查看完整描述

3 回答

?
慕雪6442864

TA貢獻1812條經驗 獲得超5個贊

問題git gc --aggressive在于選項名稱和文檔具有誤導性。


正如Linus自己在這封郵件中解釋的那樣,git gc --aggressive基本上是這樣的:


盡管git通常會嘗試重用增量信息(因為這是個好主意,而且不會浪費CPU時間重新查找我們之前發現的所有良好的增量),但有時您還是想說“讓我們重新開始,空白板,并忽略所有以前的增量信息,并嘗試生成一組新的增量”。


通常,無需重新計算git中的增量,因為git可以非常靈活地確定這些增量。僅當您知道自己有非常非常差的增量時才有意義。正如Linus解釋的那樣,主要利用這些工具的工具就git fast-import屬于此類。


大部分時間git在確定有用的增量方面做得非常好,使用Delta git gc --aggressive將使您產生可能浪費更長時間的CPU的增量。


萊納斯結束了他的郵件與結論,即git repack用大--depth而--window在大多數時間是更好的選擇; 尤其是在導入大型項目并希望確保git找到良好的增量之后。


因此,相當于(git gc --aggressive但正確完成)的事情是(隔夜)做類似的事情


git repack -a -d --depth=250 --window=250


深度是關于增量鏈有多深(在較長的歷史記錄中使它們更長-這是值得的空間開銷),而窗口是關于我們希望每個增量候選對象掃描多大的對象窗口。


在這里,您可能要添加-f標記(即“刪除所有舊的增量”,因為您現在實際上正在嘗試確保該標記確實找到了合適的候選者。


查看完整回答
反對 回復 2019-11-23
  • 3 回答
  • 0 關注
  • 2245 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號