Recently, I try to write the first line of my commit messages so they describe what the system now does, compared to before the commit. This makes reading the history much more fun. Like:
Validation of email addresses now sends a test email to the user, instead of the old regex that never worked.
This style does not work for all kinds of changes, but when it works, it creates a nice history of how the functionality of the system grew...