DEV Community

Cover image for Legendary Commits: Conventional with Emoji ๐Ÿ‘‘๐Ÿ˜ต
Ali nazari
Ali nazari

Posted on

Legendary Commits: Conventional with Emoji ๐Ÿ‘‘๐Ÿ˜ต

Writing commit messages is like a daily exercise you have to practice as a programmer.

Even if you are writing code for fun, it's important to realize this small detail reflects your developer personality in general.

commit message meme

Writing quality commits is what separates the average developer from the extraordinary one.

Do this! ๐Ÿ‘‡

use Conventional Commits

A specification for adding human and machine readable meaning to commit messages

The Conventional Commits spec is like a simple guide for your commit messages. It gives you some easy rules to follow for a clear commit history, making it a breeze to build tools on top of.

The commit message should be structured as follows:

a good commit message structure

you donโ€™t have to memorize this structure...
instead you can use a tool called : Commitizen

Commitizen assumes your team uses a standard way of committing rules and from that foundation, it can bump your project's version, create the changelog, and update files.

By default, Commitizen uses conventional commits, but you can build your own set of rules, and publish them.

for your javascript projects you can use *commmitizen * npm package :

npm i -g commmitizen 
Enter fullscreen mode Exit fullscreen mode

*NOTE: *

If you're not working in a Commitizen-friendly repository, then git cz will work just the same as git commit, but npx cz will use the streamich/git-cz adapter.

To fix this, you need to first make your repo Commitizen friendly:

to achieve this you have to initialize your project to use the cz-conventional-changelog adapter by typing:

# npm
commitizen init cz-conventional-changelog --save-dev --save-exact

# yarn
commitizen init cz-conventional-changelog --yarn --dev --exact

# pnpm
commitizen init cz-conventional-changelog --pnpm --save-dev --save-exact
Enter fullscreen mode Exit fullscreen mode

After running the command, youโ€™ll see that the Commitizen config is added to the package.json file.

We used AngularJSโ€™s commit message convention, also known as conventional-changelog, but you can use different adapters as well.

You can see a list of them here

you can now use git cz instead of git commit command :

git cz

git cz preview

If you want to go one step further and add some emojis to your messages as well, you can use an adapter called cz-emoji

first you have to install the adapter :

npm i cz-emoji

After installing the package, put the following configuration in the package.json file:

cz-emoji config

If you run git cz again, youโ€™ll probably see something like this:

Conventional Commits

Drop some tips on how you write Git commits as a Software Developer!

If you like this post, check out some of my other writings :

Top comments (0)