Should summarize answer to “what?” and explain “why?”. Think of how this commit message will sound in two months time when there is no other context except message itself. Keep subject line of commit message short and dense - only important information with keywords, elaborate further in the body of the message if needed. Use verbs in present tense - i.e. “fix assertion in parse_url”, not “fixed …” nor “fixing …”. If the change is specific to the component - put the name of the component in the prefix, e.g.: “api: change endpoint” Get the inspiration for message with git log <changed files>. Even better - use prepare-commit-msg hook to have consistent commit messages.