这是我最近在Git中提交/更改的结果...

Gerrit中的...and:

增删行数不同有什么解释吗?不同的算法?
发布于 2017-07-06 16:09:07
实际的变化是相同的。但不同之处在于GIT和GERRIT如何计算更改后的行数。假设您有4个版本/更改/补丁集在HEAD之上的提交。
commit_patchset#4
commit_patchset#3
commit_patchset#2
commit_patchset#1
头
Git:
为commit#4(A1)更改的行数: commit_patchset#4和commit_patch#3之间的差异
为commit#3(B1)更改的行数: commit_patchset#3和commit_patch#2之间的差异
为commit#2(C1)更改的行数: commit_patchset#2和commit_patch#1之间的差异
为commit#1(D1)更改的行数: commit_patchset#1和HEAD之间的差异
Gerrit:
为commit#4(A2)更改的行数: commit_patchset#4和基本/头之间的差异
为commit#3(B2)更改的行数: commit_patchset#3和基本/头之间的差异
为commit#2(C2)更改的行数: commit_patchset#2和基本/头之间的差异
为commit#1(D2)更改的行数: commit_patchset#1和基本/头之间的差异
因此,更改的行数总是不同的。
您可以使用".."选项要求Gerrit显示补丁集版本之间的确切差异(如GIT所示),而不是显示基础/头部。
例如,
给出了在commit_patchset#4和commit_patchset#3之间更改的确切行数,这应该与GIT计算结果相匹配。
希望能有所帮助。
发布于 2015-12-11 22:56:27
如果你已经推了很多次,那么这是因为你的参考版本与变更中的基础提交不同。
发布于 2016-06-13 03:44:45
每个git都会提交指向整个git树快照的指针(这使得签出或区分任何版本都非常快,而且时间相当恒定)。Git不在内部存储补丁,它们是在需要时按需计算的,就像计算提交统计数据一样。
git diff是计算它们的主要命令,它处理几种不同的算法(至少参见--diff-algorithm )。此外,git configuration还可以设置特定的默认比较行为(请参阅diff.dirstat和diff.algorithm配置)。
如果两个工具/机器都使用不同的diff设置来计算diff统计信息,那么最终您可能会得到不同的统计信息。(我不知道是不是这样)
https://stackoverflow.com/questions/29848877
复制相似问题