我们说我有一个远程回购XYZ
以及分支TEST
和TEST1
。
我将远程XYZ
拉到我当地的XYZ
个回购栏,然后切换到分行TEST1
。
我做了几次提交并推送到遥控器。然后我从TEST1
合并到TEST
(合并A)。
我向TEST1
提交了更多提交并将它们推送到遥控器。然后我将所有这些提交合并到TEST
(合并B)。
如何在分支TEST
中找到差异并列出在这两个合并(合并A和合并B)之间更改或添加的所有文件?
答案 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为例,
KDiff3在视觉上向您显示左侧的每个修改,添加或删除的文件,您可以单击其中任何一个以查看右侧的确切更改。
命令行工作正常 - 特别是对于你已经知道哈希的小变化,或者你的repo简单并且你能够快速找到它们,但我发现,平均而言,在后台运行GUI并交换对于像我这样的大多数任务来说,这对我来说是最好的工作流程。