回答
如果您多次推送,那是因为您的参考版本与更改中的基本提交不同。
每个git提交指向整个git树快照(这使得检查或比较任何修订非常快速和相当恒定的时间)。 Git不在内部存储修补程序,它们在需要时按需计算,例如计算提交统计信息时。
git diff
是计算它们的主要命令,它处理多种差异算法(至少参见--diff-algorithm
)。 git configuration也可以设置特定的默认差异行为(请参阅diff.dirstat
和diff.algorithm
配置)。
如果两个工具/机器都使用不同的差异设置计算差异统计数据,那么最后可能会得到不同的统计数据。 (我不知道是否是这种情况)
实际更改是相同的。但差异在于GIT和GERRIT如何计算改变的行数。假设您在HEAD之上有4个版本/更改/补丁集。
commit_patchset#4
commit_patchset#3
commit_patchset#2
commit_patchset#1
HEAD
GIT中:
行数改变为提交#4(A1):commit_patchset之间差异#4和commit_patch#3
针对提交#3更改的行数(B1):commit_patchset#3和commit_patch#2之间的差异
Num线BER改变提交#2(C1):commit_patchset#2和commit_patch#1
行数之间差异改变提交#1(D1):commit_patchset#1和头部之间的diff
格里特:改变提交
行数#4(A2):commit_patchset#3和基极之间的差异/ HEAD
数:commit_patchset#4和BASE/HEAD改变提交
行数#3(B2)之间的差异在commit_patchset#2和BASE/HEAD之间的差异更改为commit#2(C2):diff之间的差异
commit#1(D2):commit_patchset#1之间的差异和BASE/HEAD
所以总是改变的行数会有所不同。
您可以要求Gerrit使用“..”选项显示patchset版本之间的确切区别(如GIT所示),而不是BASE/HEAD。
例如,
http://your_gerrit_url/your_change_id/4..3给出了在commit_patchset#4和commit_patchset#3之间更改的确切行。这应该符合GIT计算。
希望它有帮助。
- 1. 为什么git show-ref --hash - HEAD显示与HEAD不同的sha1?
- 2. 为什么不会显示$ id变量?
- 3. 为什么MySQL会针对相同的查询显示不同数量的Rows_examined?
- 4. 为什么firefox/chrome会显示与IE8不同的页面?
- 5. “git remote”不显示原点。为什么?
- 6. 为什么git AuthorDate与CommitDate不同?
- 7. Git:显示无法更改的更改不显示?
- 8. JavaScript:为什么更改参数变量会改变`arguments`“数组”?
- 9. 为什么gdb显示的函数地址与nm不同?
- 10. 为什么OS X上的git-diff -raw不显示stat-only更改?
- 11. 为什么git不显示正确的更改,而差异查看器是?
- 12. ax.xaxis.set_major_formatter不会更改Xtick标签显示数字的数量
- 13. 为什么我的JMenuBar不会显示?
- 14. 为什么我的Canvas不会显示?
- 15. 为什么我的JPanel不会显示?
- 16. 为什么FontWeights.Regular显示与FontWeights.Normal相同?
- 17. 为什么被拒绝的git push不会显示在'git status'中?
- 18. 为什么“git log --name-only”显示一个文件更改,但“git diff”显示更多?
- 19. Gerrit配置与Git
- 20. Git使用gitpython更改gerrit项目
- 21. Magento的 - 为什么我的模板文件的更改不会显示出来
- 22. 为什么图像存储与不显示的图像不同?
- 23. 为什么变量不会回显?
- 24. 为什么StringBuffer不会更改?
- 25. 为什么不会AJAX更改文本
- 26. 为什么jQuery addClass不会更改css
- 27. 为什么Mat.forEach不会自行更改?
- 28. git-gui不同意git status:为什么?
- 29. 为什么git有时会显示某个文件在没有被更改时被更改?
- 30. 为什么会显示compile_error?
Gerrit不应该显示不同的数字。你能链接到gerrit上的变化吗? – Mureinik
'Gerrit'使用'jgit'。有一个'jgit'二进制文件可用。尝试在提交时运行'jgit show'并检查'jgit'和'git'产生的差异是否不同。我记得我遇到过类似的情况。 –
这是提交之前还是之后?是否存在(隐形)重设和/或合并发生? – kdopen