同一GIT分支的两次合并之间的差异

时间:2017-09-27 21:56:10

标签: git github merge git-diff

我们说我有一个远程回购XYZ以及分支TESTTEST1

我将远程XYZ拉到我当地的XYZ个回购栏,然后切换到分行TEST1

我做了几次提交并推送到遥控器。然后我从TEST1合并到TEST(合并A)。

我向TEST1提交了更多提交并将它们推送到遥控器。然后我将所有这些提交合并到TEST(合并B)。

问题:

如何在分支TEST中找到差异并列出在这两个合并(合并A和合并B)之间更改或添加的所有文件?

3 个答案:

答案 0 :(得分:3)

git diff --name-only ${MERGE_SHA_A}..${MERGE_SHA_B}

应该显示diff文件,没有--name - 只有你知道这是什么意思才会看到实际的差异

git log 
如果你需要ID,

应列出提交

答案 1 :(得分:0)

查找第一次合并提交的提交和第二次合并提交之前的提交,并使用git diff <id1> <id2>

进行区分

答案 2 :(得分:0)

根据您的解释,这大致是您的提交图在GUI中的样子:

x1 ------ A ------- B     <-- TEST
 \       /         /
  y1 - y2 - y3 - y4       <-- TEST1

我的首选答案是使用GUI来选择提交并将它们发送到可视化差异工具,而不是使用命令行。

Git Extensions为例,

  • 右键单击顶行的B提交,然后选择 [Checkout Branch&gt; TEST]
  • 然后右键单击A提交,并选择 [比较&gt;与当前分支比较]
  • 这会在您设置的任何差异工具中拉出差异(如KDiff3,当前附带安装包)。无需复制或粘贴任何哈希值等(尽管通过单击任何提交并查看屏幕下半部分的“提交”选项卡可以轻松获得它们。)

KDiff3在视觉上向您显示左侧的每个修改,添加或删除的文件,您可以单击其中任何一个以查看右侧的确切更改。

命令行工作正常 - 特别是对于你已经知道哈希的小变化,或者你的repo简单并且你能够快速找到它们,但我发现,平均而言,在后台运行GUI并交换对于像我这样的大多数任务来说,这对我来说是最好的工作流程。