Skip to content

Usage

GitLint is designed to be simple to use while providing powerful validation capabilities. Here are the different ways you can use GitLint in your workflow.

Command Line Interface

GitLint provides a command-line interface for validating commit messages.

Basic Usage

To validate a commit message file:

bash
gitlint .git/COMMIT_EDITMSG

Or validate a commit message from standard input:

bash
echo "feat: add new feature" | gitlint

CLI Options

GitLint supports several command-line options:

bash
# Validate a commit message file
gitlint .git/COMMIT_EDITMSG

# Enable verbose output
gitlint --verbose

# Use a custom configuration file
gitlint --config path/to/gitlint.config.js

# Show version information
gitlint --version

# Display help information
gitlint --help

Examples

Here are some common usage examples:

bash
# Validate the most recent commit message
git log -1 --pretty=%B | gitlint

# Validate all commit messages in a range
git log --pretty=%B main..feature-branch | gitlint

Git Hooks Integration

GitLint can be integrated with Git hooks to automatically validate commit messages before they are committed.

Installing Git Hooks

bash
# Install Git hooks
gitlint hooks --install

# Force overwrite existing hooks
gitlint hooks --install --force

Uninstalling Git Hooks

bash
# Uninstall Git hooks
gitlint hooks --uninstall

Programmatic API

You can also use GitLint programmatically in your JavaScript/TypeScript applications:

ts
import { lintCommitMessage } from 'gitlint'

const message = 'feat(ui): add new button component'
const result = lintCommitMessage(message)

if (result.valid) {
  console.log('Commit message is valid!')
}
else {
  console.error('Validation errors:', result.errors)
  console.warn('Validation warnings:', result.warnings)
}

Exit Codes

GitLint uses the following exit codes:

  • 0: Commit message is valid
  • 1: Commit message has validation errors
  • 2: An internal error occurred during validation

Testing

bash
bun test

Next Steps

To customize GitLint's behavior for your project, check out the Configuration guide.

Released under the MIT License.