3 回答

TA貢獻(xiàn)1812條經(jīng)驗(yàn) 獲得超5個(gè)贊
問(wèn)題git gc --aggressive在于選項(xiàng)名稱(chēng)和文檔具有誤導(dǎo)性。
正如Linus自己在這封郵件中解釋的那樣,git gc --aggressive基本上是這樣的:
盡管git通常會(huì)嘗試重用增量信息(因?yàn)檫@是個(gè)好主意,而且不會(huì)浪費(fèi)CPU時(shí)間重新查找我們之前發(fā)現(xiàn)的所有良好的增量),但有時(shí)您還是想說(shuō)“讓我們重新開(kāi)始,空白板,并忽略所有以前的增量信息,并嘗試生成一組新的增量”。
通常,無(wú)需重新計(jì)算git中的增量,因?yàn)間it可以非常靈活地確定這些增量。僅當(dāng)您知道自己有非常非常差的增量時(shí)才有意義。正如Linus解釋的那樣,主要利用這些工具的工具就git fast-import屬于此類(lèi)。
大部分時(shí)間git在確定有用的增量方面做得非常好,使用Delta git gc --aggressive將使您產(chǎn)生可能浪費(fèi)更長(zhǎng)時(shí)間的CPU的增量。
萊納斯結(jié)束了他的郵件與結(jié)論,即git repack用大--depth而--window在大多數(shù)時(shí)間是更好的選擇; 尤其是在導(dǎo)入大型項(xiàng)目并希望確保git找到良好的增量之后。
因此,相當(dāng)于(git gc --aggressive但正確完成)的事情是(隔夜)做類(lèi)似的事情
git repack -a -d --depth=250 --window=250
深度是關(guān)于增量鏈有多深(在較長(zhǎng)的歷史記錄中使它們更長(zhǎng)-這是值得的空間開(kāi)銷(xiāo)),而窗口是關(guān)于我們希望每個(gè)增量候選對(duì)象掃描多大的對(duì)象窗口。
在這里,您可能要添加-f標(biāo)記(即“刪除所有舊的增量”,因?yàn)槟F(xiàn)在實(shí)際上正在嘗試確保該標(biāo)記確實(shí)找到了合適的候選者。
- 3 回答
- 0 關(guān)注
- 2241 瀏覽
添加回答
舉報(bào)