Using Git, show all commits that are in one branch, but not the other(s)
To see a list of which commits are on one branch but not another, use git log:
git log --no-merges oldbranch ^newbranch
...that is, show commit logs for all commits on oldbranch that are not on newbranch. You can list multiple branches to include and exclude, e.g.
git log --no-merges oldbranch1 oldbranch2 ^newbranch1 ^newbranch2
Note: on Windows ^
is an escape key, so it needs to be escaped with another ^
:
git log --no-merges oldbranch ^^newbranch
You probably just want
git branch --contains branch-to-delete
This will list all branches which contain the commits from "branch-to-delete". If it reports more than just "branch-to-delete", the branch has been merged.
Your alternatives are really just rev-list syntax things. e.g. git log one-branch..another-branch
shows everything that one-branch
needs to have everything another-branch
has.
You may also be interested in git show-branch
as a way to see what's where.
To show the commits in oldbranch but not in newbranch:
git log newbranch..oldbranch
To show the diff by these commits (note there are three dots):
git diff newbranch...oldbranch
Here is the doc with a diagram illustration https://git-scm.com/book/en/v2/Git-Tools-Revision-Selection#Commit-Ranges