I wrote a fuller description on 365git.
The use of the imperative, present tense is one that takes a little
getting used to. When I started mentioning it, it was met with
resistance. Usually along the lines of “The commit message records
what I have done”. But, Git is a distributed version control system
where there are potentially many places to get changes from. Rather
than writing messages that say what you’ve done; consider these
messages as the instructions for what applying the commit will do.
Rather than having a commit with the title:
Renamed the iVars and removed the common prefix.
Have one like this:
Rename the iVars to remove the common prefix
Which tells someone what applying the commit will do, rather than what
you did. Also, if you look at your repository history you will see
that the Git generated messages are written in this tense as well -
“Merge” not “Merged”, “Rebase” not “Rebased” so writing in the same
tense keeps things consistent. It feels strange at first but it does
make sense (testimonials available upon application) and eventually
becomes natural.
Having said all that - it’s your code, your repository: so set up your
own guidelines and stick to them.
If, however, you do decide to go this way then git rebase -i with the
reword option would be a good thing to look into.