我知道git diff branch1 branch2
。但是,我希望看到仅在一个分支中引入的更改。我可以通过以下方式获得此功能:
git checkout branch1
git merge branch2
git reset origin/branch1
git diff
有没有更短的方法来做到这一点?
你可以做:
git diff branch1...branch2
(注意是三个点)
...这将向您展示branch2
自从它偏离branch1
(或者,严格来说,自合并基础以来)以来引入的所有更改。..
和...
中git diff
和的不同用法git log
可能有点令人困惑,因此您可能会发现此答案中的图表很有帮助。
您需要找到两个分支的最近公共根的哈希,为此您使用 git merge-base:
git merge-base branch1 branch2
然后,您可以使用 git log 获取从该公共根到分支头的更改日志:
git diff <common base hash>..branch2