I'm always asking myself a set of questions about branches I've created that I've yet to determine how to accomplish:
Now I think I figured out how to get the hashes of all the commits committed to the branch but not merged into master using git cherry master <branchname>
. With this, I could go hash by hash and figure out everything but if you have a lot of commits this could be time-consuming.
Notice I don't want to compare to the current state of master
. I think the key is knowing the hash of master
that you created your branch off of but I'm not exactly sure how to determine this.
To find where your current checkout diverged from the master branch,
base=`git merge-base master HEAD`
echo $base
to find out what files have been changed since then,
git diff --name-only $base HEAD
to show the accumulated difference
git diff $base HEAD
When you want to describe an entire series of commits you can use the syntax in the answer Gabriele Petronella linked above, master..HEAD
is shorthand for HEAD ^master
which means "all commits reachable from HEAD, but not including commits reachable from master". Missing endpoints default to HEAD, so you can say git log --oneline master..