A new GitHub CLI extension called gh-cc makes it easy to turn all your commits into conventional commits.
Read below about the advantages of using conventional commits, or skip ahead to the installation section.
Improving your commit history
Conventional Commits is a guideline to improve the readability of commit messages. For example, if a commit fixes a bug in the code, a normal commit message looks like this:
Do not crash on empty index field
The same commit message, but now in a conventional style, looks like this:
fix: 🐛 Do not crash on empty index field
The prefix helps both humans and machines to better understand the main intent of the commit.
Improved readability for humans
Compare the git histories (git log --oneline
) below, which one is easier to grasp?
Normal commit log:
36d23b5 Add filter for new matches
d5d96ee Do not crash on empty index field
4f0f722 Keep less data in memory
70fcb38 Update dependencies
b5432ee Bump version to 0.15.0
b69b9c4 Update FAQ section
Conventional commit log:
36d23b5 feat: ✨ Add filter for new matches
d5d96ee fix: 🐛 Do not crash on empty index field
4f0f722 perf: ⚡️ Keep less data in memory
70fcb38 build: ⬆️ Update dependencies
b5432ee build: 🔖 Bump version to 0.15.0
b69b9c4 docs: 📝 Update FAQ section
Improved readability for machines
Because conventional commits add a consistent prefix to your commit messages, automated tools can parse this prefix and use it for other nice things. One of these things is making your project follow the Semantic Versioning specification by automatically creating semantic releases. The screenshot below shows how pretty your generated release documentation becomes by using conventional commmits:
Installation
If you have the GitHub CLI up and running, installing the extension is as simple as:
gh ext install robvanderleek/gh-cc
Usage
Type the following inside any cloned repository:
gh cc -am "commit message here"
This extension passes all arguments on to git commit, so to save typing you can add the following alias to your shell configuration: alias gc="gh cc"
. The command above then becomes:
gc -am "commit message here"
That's it!
Request for feedback
This GH CLI extension implements the Angular convention for commit types, combined with gitmojis. It does not support scopes, or message bodies. For feedback, suggestions and bug reports, please open an issue.
Examples of more advanced tools for conventional commits can be found here.
Top comments (0)