题 比较Git中的两个分支? [重复]


这个问题在这里已有答案:

我有两个分支, branch_1 和 branch_2

我想看看Git中两个分支之间的差异。


1556
2018-03-23 05:47


起源


你想要的东西与直截了当不同 git diff branch_1 branch_2? (注意,如果名称branch_1和branch_2也是名称文件,则需要 git diff branch_1 branch_2 --) - torek
stackoverflow.com/questions/822811/differences-in-git-branches - Bijendra
引用的副本没有回答问题......确定哪些文件已更改 git diff --name-status master..branchName 与看到分支之间的确切差异明显不同 git diff branch_1 branch_2。或者也许我错过了一些明显的东西...... - jww
同意@jww,这个问题不重复。即使“标记的副本”回答了这个问题,但它没有回答这个问题,但问题的措辞是完全不同的,以使其独特。对jberryman,Mac,Mario Sannum,EdChum和ElYusubov感到羞耻。他们只是甩着他们的力量。 - Scott Biggs
不仅“复制”是一个不同的问题,这个问题是“git diff two branches”的头号google匹配。 - Rob Osborne


答案:


git diff branch_1..branch_2

这将产生两个分支的尖端之间的差异。如果您希望从他们的共同祖先中找到差异进行测试,您可以使用三个点而不是两个点:

git diff branch_1...branch_2

2177
2018-03-23 06:11



相同的语法用于将分支与标记或标记与另一个标记进行比较。 - Daniel Zohar
范围语法也适用于 git log。有了它,你可以看到提交消息,并与 --patch 选项你可以一次看到一个diff提交。 - Joe Flynn
请注意,您也可以在上述两个命令后添加文件或文件夹名称。 - msanford
@chiyachaiya你的解释对我有帮助,但是git diff b1 ... b2和git diff b2 ... b1不一样。例如,一旦我们从b1开始b2,如果我们对b1进行一些更改,git diff b2 ... b1将显示b2启动后对b1所做的更改。如果我们执行git diff b1 ... b2,它将对b2进行更改,这些更改不在b1中。 - Chintak Chhapia
如果你得到 fatal: bad revision 'some-branch' 那么这可能是一个远程分支。你可能需要类似的东西 git diff remotes/origin/some-branch my-local-branch - Dalin