Vlad the Impala
Vlad the Impala

Reputation: 15872

Diffing two branches to show changes introduced in one branch

I know about git diff branch1 branch2. However, I would like to see changes introduced in one branch only. I can get this functionality with:

git checkout branch1
git merge branch2
git reset origin/branch1
git diff

Is there a shorter way to do this?

Upvotes: 5

Views: 826

Answers (2)

Alex Wilson
Alex Wilson

Reputation: 6740

You need to find the hash of the most recent common root of the two branches, for which you use git merge-base:

git merge-base branch1 branch2

Then after than you can get a log of the changes from that common root to the branch head with git log:

git diff <common base hash>..branch2

Upvotes: 3

Mark Longair
Mark Longair

Reputation: 467161

You can do:

git diff branch1...branch2

(note that there are three dots)

... which will show you all the changes introduced on branch2 since it diverged from branch1 (or, strictly speaking, since the merge-base). The different uses of .. and ... in git diff and git log, can be a bit confusing, so you might find the diagrams in this answer helpful.

Upvotes: 9

Related Questions