比较两个分支以展示一个分支引入的更改

5
我知道如何使用 git diff branch1 branch2 比较两个分支的差异。但是,我只想查看一个分支引入的更改。我可以使用以下命令来获得这个功能:
git checkout branch1
git merge branch2
git reset origin/branch1
git diff

有没有更简单的方法来完成这个任务?
2个回答

9

您可以做以下事情:

git diff branch1...branch2

(请注意,有三个点)

使用git diffgit log时,.....的不同用法可能会让人感到困惑。使用branch1分支分叉后引入到branch2分支上的所有更改(严格来说是自合并基准点以来的更改)可以通过...命令显示。您可能会发现此答案中的图表对您有所帮助。


您好,先生。非常好的回答。从您的记录中可以看出,我正在与大佬们一起竞争 Git 回答... :-) - Alex Wilson
@Alex:您好,先生!希望您一切都好。事实上,我目前只是偶尔检查 git 标签,但这肯定是一个值得关注的好标签。 - Mark Longair

3
你需要找到两个分支的最近公共根的散列值,可以使用git merge-base命令实现此功能。
git merge-base branch1 branch2

然后,您可以使用git log从通用根到分支头获取更改的日志:
git diff <common base hash>..branch2

这几乎是正确的。我使用了 git diff <common base hash>..branch2,而不是 git log ...。你能更新一下你的答案吗?然后我会将其标记为正确的。 - Vlad the Impala
@Vlad。完成了。虽然Mark提供了更简洁的答案,但我会选择给他打勾! - Alex Wilson

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接