Good Commit logo

Good Commit Guhan

Use this command to install Good Commit:
winget install --id=Guhan.GoodCommit -e

A CLI alternative for Commitzen

Good Commit CLI is a command-line tool designed to help developers create standardized Git commit messages following the Conventional Commits specification. This tool streamlines the process of crafting clear, consistent, and meaningful commit messages, enabling better collaboration, automation, and codebase maintenance.

Key Features:

  • Enforces the Conventional Commits standard by guiding users through type (e.g., feat, fix), scope, and message structure.
  • Provides context and examples for each commit type to ensure clarity and consistency.
  • Validates commit messages against predefined rules to maintain quality and adherence to best practices.
  • Integrates seamlessly into existing Git workflows, offering a simple yet powerful alternative to manual commit formatting.
  • Serves as an educational tool, helping users understand and adopt the Conventional Commits standard effortlessly.

Audience & Benefit: Ideal for developers seeking to adopt or enforce the Conventional Commits specification. By using Good Commit CLI, users can:

  • Ensure all team members follow a unified commit style, reducing confusion and improving maintainability.
  • Streamline collaboration by making commit messages more predictable and actionable for other team members.
  • Facilitate automated processes such as changelog generation, release notes, and code reviews.
  • Quickly learn the conventions of Conventional Commits through guided prompts and examples.

Good Commit CLI can be installed via winget.

README

image

If you like this project or want this CLI to be in scoop please consider giving a ⭐.

Usage

Currently, approval is pending on Chocolatey (and this project does not fit the criteria to make a request for scoop extras nor main bucket) so the only way you can try is by downloading the exe and trying it on the terminal.

Local Development

To try in the terminal, create a jar using maven or gradle.

mvn clean package

Then run the jar which will be on the target repository.

java -jar target/JAR-NAME.jar

This command is substitute for the good-commit command. So if you want to use -h flag or other options it will be like, java -jar target/JAR-NAME.jar -h

Currently .exe file is built using launch4j. There are some good youtube videos out there if you want a tutorial to know how to convert the jar to an executable.

FAQ

  1. Why should I use this CLI?

Ans: Good commit CLI can help you to learn and get into Conventional Commits. The purpose of this CLI is to make people understand how to create git commits following conventional commits.

  1. Using this CLI is way annoying

Ans: If you find this CLI annoying that means you might have a gist of conventional commits by now. You are no longer in the need of this CLI and it has served it's purpose (I hope). You can now create git commits following conventional commits faster by typing the commit message yourself.

  1. Why should I follow conventional commits?

Ans: Anything that follows a standard or specification can be automated to an extend. For an instance, you can generate automated commit messages by hooks or tools, or use your favorite model to create commits following this standard. Also other developers can understand what your commit does.

  1. When are you going to automate .exe builds or release this CLI to other CLI package managers?

Ans: Currently I am trying to automate builds using GraalVM. It is not complete yet since I am getting lot of errors and I am new to it. Once it is setup and works fine, I will automate executable releases and submit this CLI to other CLI package managers.

Versions
1.0.3
1.0.1
Website