簡體   English   中英

git - 每次提交的成本

[英]git - Cost of each commit

git中每次提交的成本是多少? 例如,如果我一次提交更改A和B而不是為每個提交單獨的提交,則使用多少(或更少)空間?

TLDR:我直觀地預測,沒有測試,實際使用情況的差異很小。 如果你每天做數千次提交,也許你應該更加分析這一點。

我的思維過程:每個提交都包含一個提交消息,樹和blob。 請參閱Git for Computer Scientists進行一次精彩的演練。 將blob視為一個文件的差異。 一般來說,平均而言,我不希望在兩個blob中進行更改而不是一個更改。 所以你剩下的是一個額外的樹對象和一個額外的提交消息。 (樹對象是一個子目錄和文件名,它告訴git應用blob的位置 - 差異。提交消息正是你認為的那樣。)

所以對它進行一些猜測:

  • 樹對象可能是10到100個字節
  • 提交消息可能是10到200個字節

根據這些估計,加倍意味着大約20到300個字節。

(注意:這種分析不會影響磁盤分配。所以它可能會偏離基礎!)

新創建的對象通常是松散的對象。

每個松散對象在磁盤上占用4K最小值。

單個提交至少包含提交對象,樹對象和blob對象。

如果允許為空(沒有文件更改),則只有一個提交對象,但不經常使用。

因此,12K是最低的!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM