How to Ensure Consistent Commit Messages with Commitlint

Thiraphat Phutson
2 min readJun 22, 2024

In software development, maintaining consistent commit messages is crucial for better project management and collaboration. Commitlint is a tool that helps enforce a standard convention for commit messages, ensuring they are clear and descriptive. In this article, we’ll explore what Commitlint is, why it’s essential, and how to set it up in your project.

What is Commitlint?

Commitlint checks if your commit messages meet the conventional commit format. It helps to standardize commit messages across a team, making it easier to understand the history and changes in a project.

Why Use Commitlint?

  • Ensures all commit messages follow a specified format.
  • Makes it easier to understand the intent behind changes.
  • Facilitates automated release notes and versioning.
  • Helps new team members understand the project’s history quickly.

Setting Up Commitlint

To get started, first, install Commitlint and Husky by running the following command:

npm install --save-dev @commitlint/{config-conventional,cli} husky

Next, create a commitlint.config.js file in the root directory of your project with the following content:

module.exports = { extends: ['@commitlint/config-conventional'] };

Then, initialize Husky in your project:

npx husky install

Add a commit-msg hook to run Commitlint by executing:

npx husky add .husky/commit-msg 'npx --no -- commitlint --edit "$1"'

Customizing Commitlint Rules

If you need to customize the rules, you can extend the configuration in commitlint.config.js. For example:

module.exports = {
extends: ['@commitlint/config-conventional'],
rules: {
'subject-case': [2, 'always', 'sentence-case'],
},
};

Common Commit Message Formats

  • feat: A new feature
  • fix: A bug fix
  • docs: Documentation only changes
  • style: Changes that do not affect the meaning of the code (white-space, formatting, missing semi-colons, etc)
  • refactor: A code change that neither fixes a bug nor adds a feature
  • test: Adding missing tests or correcting existing tests
  • chore: Changes to the build process or auxiliary tools and libraries such as documentation generation

Conclusion

Using Commitlint ensures that your commit messages are consistent and meaningful, which is crucial for maintaining a clean and understandable project history. By following the steps outlined in this article, you can easily integrate Commitlint into your workflow and start reaping the benefits of standardized commit messages.

--

--

Thiraphat Phutson
Thiraphat Phutson

Written by Thiraphat Phutson

I'm a software developer committed to improving the world with technology. I craft web apps, explore AI, and share tech insights.

No responses yet