私は知っていgit diff branch1 branch2
ます。ただし、1つのブランチでのみ変更が導入されることを望んでいます。この機能は次の方法で取得できます。
git checkout branch1
git merge branch2
git reset origin/branch1
git diff
これを行うためのより短い方法はありますか?
できるよ:
git diff branch1...branch2
(3つのドットがあることに注意してください)
branch2
...これは、分岐してからbranch1
(または、厳密に言えば、マージベース以降)に導入されたすべての変更を示します。..
と...
ingit diff
とのさまざまな使用法はgit log
少し混乱する可能性があるため、この回答の図が役立つ場合があります。
git merge-baseを使用する、2つのブランチの最新の共通ルートのハッシュを見つける必要があります。
git merge-base branch1 branch2
その後、git logを使用して、その共通ルートからブランチヘッドへの変更のログを取得できます。
git diff <common base hash>..branch2