繁体   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