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