Git: Find the most recent common ancestor of two branches
git diff master...feature
shows all the new commits of your current (possibly multi-commit) feature branch.
man git-diff
documents that:
git diff A...B
is the same as:
git diff $(git merge-base A B) B
but the ...
is easier to type and remember.
As mentioned by Dave, the special case of HEAD
can be omitted. So:
git diff master...HEAD
is the same as:
git diff master...
which is enough if the current branch is feature
.
Finally, remember that order matters! Doing git diff feature...master
will show changes that are on master
not on feature
.
I wish more git commands would support that syntax, but I don't think they do. And some even have different semantics for ...
: What are the differences between double-dot ".." and triple-dot "..." in Git commit ranges?
You are looking for git merge-base
. Usage:
$ git merge-base branch2 branch3
050dc022f3a65bdc78d97e2b1ac9b595a924c3f2