A git commit message formatter written in Rust.
- Enforces subject line length (default: 50 chars)
- Wraps body lines (default: 72 chars)
- Preserves git comments and diffs
- Works seamlessly with editors like nvim
- Configurable via
.commitfmt.toml
cargo install commitfmtOr build from source:
cargo install --path .cat commit.txt | commitfmtcommitfmt COMMIT_EDITMSGAdd to your git config:
git config --global core.editor "nvim"Then use with a git hook in .git/hooks/commit-msg:
#!/bin/sh
commitfmt "$1"Create .commitfmt.toml in your project:
subject_max_length = 50
body_max_line_length = 72- Subject lines longer than the max length have overflow words moved to the body
- Body lines longer than max are wrapped at word boundaries
- Lines starting with
#(git comments/diffs) are preserved - Intentional line breaks in the body are maintained
MIT