How to write good commit message in Git?

Photo by Yancy Min on Unsplash

How to write good commit message in Git?

Writing clear and informative commit messages is crucial for maintaining a clean and understandable version history in Git. A well-crafted commit message helps you and your collaborators understand the purpose and context of each change. Here are some guidelines for writing good commit messages:

1. Keep It Short and Descriptive:

  • Limit the subject line to 50 characters: The subject line should be a concise summary of the change.

  • Use the imperative mood: Start with a verb, as if giving a command. For example, "Add feature," "Fix bug," or "Update documentation."

2. Provide Context:

  • Explain why, not just what: Briefly explain the reasoning behind the change in the commit body. This helps others understand the motivation behind the code modifications.

  • Reference relevant issues or tickets: If there's a related issue or task, include a reference to it. For example, "Closes #123" or "Fixes #456."

3. Break Down Changes:

  • Make small, atomic commits: Each commit should represent a single logical change. Avoid bundling unrelated changes in a single commit.

  • Separate concerns: If your commit includes changes to multiple files, make sure they are related. If not, consider splitting them into separate commits.

4. Be Mindful of Formatting:

  • Use proper grammar and punctuation: Treat your commit messages like any other piece of writing.

  • Capitalize the subject line: Follow standard capitalization rules.

  • Avoid unnecessary details: Save the details for the commit body; the subject line should be a high-level summary.

5. Be Explicit About Changes:

  • Clearly mention what changed: Provide enough information for someone to understand the change without having to look at the code.

  • Include relevant details: If applicable, mention specific files, functions, or modules affected by the commit.

Example:

Short (50 chars or less) and descriptive
Brief explanation in the body, if necessary.

Fixes #123

Details about changes in bullet points:
- Explain one
- Explain two

Additional context or information, if needed.

Bad Example:

Changed stuff

Good Example:

Add user authentication feature

This commit introduces a new feature for user authentication,
enabling users to securely log in and manage their accounts.

Closes #456

- Added login and registration routes
- Implemented JWT token authentication
- Updated user model to include hashed passwords
- Improved error handling for authentication failures

By following these guidelines, you contribute to a more understandable and maintainable version history, making it easier for you and your team to collaborate effectively.