# Gitguard: where sloppy commits meet their match

As software development teams grow larger and more diverse, maintaining a clean and organized codebase becomes increasingly important. One aspect of this organization involves creating meaningful and easy-to-understand commit messages. Enter Conventional Commits and GitGuard, two tools that aim to simplify the process of managing commit messages while promoting best practices within your codebase.

#### What are Conventional Commits?

Conventional Commits is a specification that outlines guidelines for writing commit messages. These guidelines help create a common standard for developers to understand the changes introduced in a codebase. A typical Conventional Commit message consists of three parts:

```bash
<type>(<scope>): <message>
```

1. **Type**: Categorizes the commit into different types, indicating the nature of the change (e.g., `feat`, `fix`, `chore`, etc.).
    
2. **Scope**: Specifies the module, component, or area of the project affected by the commit (optional).
    
3. **Message**: Provides a concise and clear description of the changes made.
    

By using Conventional Commits, you can benefit from:

1. Automated semantic versioning: Tools can analyze commit messages to determine version increments based on the types of changes introduced.
    
2. Meaningful release notes: Consistent commit messages make it easier to generate relevant information about new features, bug fixes, and other changes during release preparation.
    
3. Improved project understanding: Following a convention like Conventional Commits enhances the overall comprehension of the project history, facilitating better collaboration among developers, contributors, and maintainers.
    

However, implementing Conventional Commits manually can be time-consuming and prone to errors. That's where GitGuard comes in.

#### Introducing GitGuard

[GitGuard](https://github.com/segin-GH/gitGuard) is an open-source tool that enforces the Conventional Commits specification, ensuring that every commit message is clear, concise, and follows the established standards. Developed by Segin GH, GitGuard is language-agnostic, compatible with Git, and highly customizable, making it an excellent choice for any project.Some key benefits of using GitGuard include:

* Language agnosticism: GitGuard works seamlessly with various programming languages, including Python, Rust, and JavaScript, making it an ideal tool for multi-language projects.
    
* Git integration: GitGuard integrates with Git's commit-msg hook, acting as a sidekick for your commits, ensuring they're always up to par.
    
* Customizable rules: Although not yet available, GitGuard will soon allow you to set your own commit commandments, tailoring it to your project's needs.
    
* Cross-platform compatibility: Tested on Linux, GitGuard is working towards compatibility with Windows and macOS, ensuring it's accessible to all.
    
* Feedback friendly: GitGuard offers gentle nudges instead of hard knocks, helping you correct your commit messages without causing frustration.
    
* Easy setup: With a simple installation process, you can quickly integrate GitGuard into your workflow and start enjoying better commit messages.
    

#### How GitGuard Works

Whenever a developer makes changes, commits those changes using Git, and the pre-commit hook is triggered, GitGuard performs commit linting for the commit messages. If the checks pass, the commit proceeds; otherwise, an error message appears, and the commit is halted.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1705944058480/661944a6-6838-4e50-99c8-7d91deb5b01b.png align="center")

#### How to Install GitGuard

1. Download GitGuard in the root of your repository:
    

```bash
wget https://github.com/segin-GH/gitGuard/raw/main/dist/gitguard.zip
```

1. Unzip the downloaded file:
    

```bash
bash unzip gitguard.zip
```

1. Remove the zip file:
    

```bash
bash rm gitguard.zip
```

1. Change to the `.gitguard` directory:
    

```bash
cd .gitguard
```

1. Install GitGuard:
    

```bash
./gitguard.py
```

With GitGuard installed, you can now enjoy the benefits of having clear and consistent commit messages throughout your codebase. As a bonus, you'll also learn more about the importance of commit messages and how to structure them effectively.

---

Gitguard Repo: [https://github.com/segin-GH/gitGuard](https://github.com/segin-GH/gitGuard)

Webiste URL : [https://](https://gitguard.segin.in)[gitguard.segin.in](https://gitguard.segin.in)
