I have looked at various SO answers on using git diff
and git revisions (HEAD, ORIG_HEAD, FETCH_HEAD, etc.) and I still haven't found an easy way to list the changes have been made since the beginning of the local branch, or since last rebase.
By easy I mean without having to look up and paste commit SHA or having to count how many commits I want to look back.
git diff origin/master
is close, but it refers to remote which may have diverged since I checked out new branch from it.
I would expect something like git diff BASE_HEAD
to be available.
...unless there's already a way to do that. Does anyone have the answer?
You can find the branch point using git merge-base
. Consider master
the mainline and dev
the branch whose history you are interested in. To find the point at which dev
was branched from master
, run:
git merge-base --fork-point master dev
We can now diff dev
against this basis:
git diff $(git merge-base --fork-point master dev)..dev
If dev
is the current branch this simplifies to:
git diff $(git merge-base --fork-point master)
For more information see the git-merge-base
documentation.