Git: How to get all the changes on a branch

Git: How to get all the changes on a branch

Working in a multi-branch system with git sometimes could become tricky to understand exactly what is/was going on in a particular branch.
Usually, at the moment of the code-review, I want to be able to understand what exactly happened since the branch was created from master (or any other sub-branch). Using git diff master isn't going to help, as it will list also the changes that in the meanwhile happened to the original branch.
In this case what is needed is a mixture of command, more or less like a pipe on your command line, first we need to get the reference on where the branch was created (git merge-base HEAD master) and then use it with git diff. The command to be piped as to be included by `` `.

git diff `git merge-base HEAD master`

You can add this command in your bash (or zsh) script or .gitconfig, as you prefer.
Keep in mind that if you are merging your original branch to the new one this command lose its power. But please it's a really nasty thing, don't do it, use git rebase instead :)