A common question I get from co-workers is, “How do I see if I already merged my changes into my master branch?”. My usual suggestion was to use git diffbut I've started telling them to look atgit cherry` (NOT git-cherry-pick).

From the new Git documentation, git-cherry finds commits not merged upstream.

I use it like this while on the master branch to see what commits are in master that are not on the feature-branch-name branch:

git cherry -v master feature-branch-name

The -v option prints out the commit SHAs and messages. If I am already on the feature-branch-name branch, I can type the following to get the same effect:

git cherry -v master

The results typically looks something like:

%2B a4d0f79fccbbc12a53e8f0e5c2a4ef960ad69ba2 commit 1 message
%2B 7e71afd1faf36f17a0ff506e63cd2ca51496dad3 commit 2 message
%2B 5e815ece05d8813354e60ca1affb8cdb8c5d78fc commit 3 message
%2B 956f4cec5684544066a0d261ff8ac80aff7a57ea commit 4 message
%2B 6c6cdb4342ed935f8fbd38f48f51dec469dd1823 commit 5 message
%2B c3481fd0d6279f5bd45c455b915e0b4b1c0d8909 commit 6 message

That means those commits are on feature-branch-name branch but not in master