我拉了并合并了代码。
我希望看到将应用于代码的更改。
不幸的是,以下所有内容都显示了其他开发人员执行的更改(这些更改已在前一段时间内完成)
git diff origin/ContactList...ContactList git diff origin/ContactList..ContactList git diff origin/ContactList...HEAD git diff origin/ContactList..HEAD
换句话说,我克隆了回购。我在开发过程中已经拉了(我确实希望是最新的)。现在,我只希望看到我的更改。
P.S。:我没有创建另一个分支
答案 0 :(得分:3)
git diff
向您显示您要求它显示的内容,即您提供的两个提交之间的差异。
要了解如何查看“仅自己的更改”,您必须了解合并历史记录中上游更改的位置。在以某些图形表示形式查看历史记录时,可以轻松完成此操作。使用gitk
或git log --graph --oneline --decorate
或您喜欢的其他历史浏览器。
假设你有一个“简单”的情况,其中两个平行的开发线(你的和上游)合并,你的历史将看起来像这样:
... <- A <- B <- U1 <- U2 <- ... <- Un <-+- C <-- D <-- ....
^ |
`--- Y1 <- Y2 <- ... <- Ym <-'
在此表示中,箭头从子提交到他们的父母,因此在左侧是较旧的提交,在右侧是较新的提交。 (你的分支小贴士在C的右边)。 U*
提交表示上游更改,Y*
提交您自己的更改,但这不是很相关。
用于这些提交的名称是象征性的;当你在repo中实际调用diff时,你需要使用实际的ref名称(标签或分支,如果它们存在于正确的位置,或者提交SHA,否则)。
要查看合并的您自己的部分所发生的所有累积更改(Y*
提交),您可以使用
git diff B Ym
即合并基础(最后一次提交)与合并之前的最新提交之间的差异。
您尝试它的方式包括实际的合并提交(在此示例中为C
),其中已包含所有上游更改,因为此时合并已经发生(这是字面意思)合并提交的要点)。
合并之前某处的diff和它之后的某个地方(包括合并提交)将包含合并两边的所有更改。