Rarely used git commands

I was preparing a presentation on git I am about to deliver to a group of bioscientists. While doing so I learned couple of things myself. Here are the bits and pieces:

# See the short log with the list of the changed files with each commit
git whatchanged

# See committers statistics - who committed the most?
git shortlog -s -n

# Web-enable any git repository
git instaweb

Additionally I learned about git notes. There is a full set of commands to manipulate notes: add, append, delete, copy, show...

Why I think it is useful? Mostly for verbose tagging. Tags (and other references, such as branches) are very important. It is important to keep their names short and well structured. In the ideal case I would like "git tag" command to output list of released versions, and "git branch --list" to output list of bugs or improvements I am working on. But what if I need to add some more verbose information. Let's say:

git notes append -m"TODO: cherry-pick this into maven branch" 2e4843f67909cea2e8e5fcdba0e8b1b49543a504

I do not need to worry about the message format. I can leave any kind of garbage there. It is not interfering with anything much. And yet there is a way to nicely see notes in the history:

git log --pretty=oneline --notes