DEV Community 👩‍💻👨‍💻

Cover image for Mastering the Art of Writing Effective GitHub Commit Messages
Ashish Patel
Ashish Patel

Posted on

Mastering the Art of Writing Effective GitHub Commit Messages

There are no strict rules for writing commit messages but When working on a project on GitHub, it's important to communicate clearly and concisely about the changes you've made. One way to do this is through the use of keywords in your commit messages.

These keywords, or labels, help to indicate the nature of the changes and make it easier for others to understand the context of your contributions.

Here are some common keywords and what they indicate:

FEAT: Use this keyword to indicate that you are committing to a new feature.

"FEAT: Add new login functionality."

FIX: Use this keyword to indicate that you are committing a fix for a specific problem or issue.

"FIX: Fix bug causing crashes on certain devices."

STYLE: Use this keyword to indicate that you are making changes to the style or formatting of the code, but not its functionality.

"STYLE: Update indentation in main.js."

REFACTOR: Use this keyword to indicate that you are making changes to the code that improve its structure or organization, but do not add new features or fix bugs.

"REFACTOR: Refactor the code to improve readability."

TEST: Use this keyword to indicate that you are adding or updating tests for the code.

"TEST: Add new unit tests for login functionality."

CHORE: Use this keyword to indicate that you are making changes to the build process or other tasks that are not directly related to the code itself.

"CHORE: Update dependencies in package.json."

PERF: Use this keyword to indicate that you are making changes to improve the performance of the code.

"PERF: Optimize image loading for faster performance."

CI: Use this keyword to indicate that you are making changes to the continuous integration process.

"CI: Fix issue with test pipeline on Travis CI."

BUILD: Use this keyword to indicate that you are making changes to the build process.

"BUILD: Add new script for building the production version of the app."

FIX: Use this keyword to indicate that you have fixed some bug in an application.

"FIX: Fix login bug caused by incorrect validation of user input #1234"

By using these keywords in your commit messages, you can help to make your contributions more clear and more understandable to others. However, it is important to note that these are just suggestions and not all projects use them, it's important to check the project's documentation to see if there are any specific guidelines you should follow.

In summary, clear and concise commit messages are a key aspect of good development practices. Using keywords in your commit messages can help to indicate the nature of the changes you've made, making it easier for others to understand and review your contributions.

Top comments (16)

Collapse
 
jmau111 profile image
jmau111⭐ •

Simple but efficient technique! Congrats.

Although, I would add one advice that I find critical:

Choose a naming convention and stick with it. It's important teammates use the same pattern. Best way to ensure that it pair programming with new members, but you can also document it.

Collapse
 
derlin profile image
Lucy Linder •

Or simply use an existing convention, like conventional-commits which is actually the spec this article sums up 😉

Collapse
 
ashishxcode profile image
Ashish Patel •

Thanks will have a read 🙌

Collapse
 
jmau111 profile image
jmau111⭐ •

not all organizations will follow that framework.

Collapse
 
ashishxcode profile image
Ashish Patel •

Me and all teammates follows this technique most of the time

Collapse
 
derlin profile image
Lucy Linder • • Edited on

There are no strict rules, but there are conventions!

I am surprised not to see any reference to conventional-commits which is the actual specification behind this practice. The spec, however, defines lowercase types (feat VS FEAT).

There is also a bit more to it (footers, breaking changes).

For everyone interest, i strongly suggest to read the spec and the angular conventions directly!

Collapse
 
tlylt profile image
Liu Yongliang •

conventional-commits is definitely the more popular/standard way to do this, especially useful for (auto) release management :)

Collapse
 
tlylt profile image
Liu Yongliang •

Just want to make sure, is it “ REACTOR” or “REFACTOR”?

Collapse
 
ashishxcode profile image
Ashish Patel •

Thanks, Will fix it

Collapse
 
gbhorwood profile image
grant horwood •

FIX: refactor

Collapse
 
jwp profile image
John Peters •

Crazy simple. Good... thanks...

Collapse
 
ashishxcode profile image
Ashish Patel •

I hoped it help you 😌

Collapse
 
the_riz profile image
Rich Winter •

Lately, I've been using emoji to categorize my messages. Though I leave it to you to pick which you would use for the keywords above..

👍🏼👌🏼✍️💅🌲🕸️🐛👾🎛️🪠🔧🔨⚒️🛠️⛏️🔗🚫🆕🆙🆗🚮⚕️🏁🎨🚛🚀

Collapse
 
flimtix profile image
Flimtix •

I like this schematic naming! Your article sums it up perfectly. 👍
Personally, though, I use emojis instead of prefixes because they stand out more.

Collapse
 
ashishxcode profile image
Ashish Patel •

Yeah not doubt in that, but I feel it's about the preference

Collapse
 
spandyboss profile image
SpandyBoss •

Amazing content, thanks for sharing.

🌚 Browsing with dark mode makes you a better developer by a factor of exactly 40.

It's a scientific fact.