* The big fix: This is the commit which usually is too complex to be explained in a 72-characters message. Usually it refers to an issue number on the project's issue tracker, which in my case is Github.
* The medium fix: This is a commit whose "why" fits properly into 72 characters, i.e. "Add classes to validate user input only on Friday".
* The small/obvious fix: This is a very small commit, usually fixes obvious issues like CI builds, misspellings in doc files, missing semi-colons, etc etc.
In the last case, I find it appropriate to write the "how" rather than the "why" in the commit message, since the why is already obvious. i.e. "Add missing comma on object identifier".
For larger centralized projects, I have found a requirement on issue numbers in commit messages to work well. It makes a whole lot of management issues easier.
The commit message should say what changed, not why. Comments are for explaining why the code does what it does.
Good commit log: http://git.savannah.gnu.org/cgit/guix.git/commit/?id=fb519bd...
This enables you to easily compile release notes, for example.
Example comment: i++; // because server starts counting at 0 (not 1)
Example commit: Our customer switched to bar (from foo), which starts counting at 0 instead
Why did you 'Add feature...'? Why did you 'Move cursor to...'?
I did stuff // Increment i by 1
Why I did stuff // Increment i by 1 to not have a off by 1 bug