回答
如果您多次推送,那是因爲您的參考版本與更改中的基本提交不同。
每個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