A simple, lightweight commitizen-like tool for creating standardized Git commit messages following the Conventional Commits format.
Commitish streamlines your Git workflow by helping you craft well-formatted commit messages without needing to remember the conventional commits syntax. It provides an interactive interface to select commit types, add scopes, and include detailed descriptions when needed.
- Interactive commit type selection using fuzzy search
- Support for all standard conventional commit types
- Optional scoping of commits
- Optional multi-line commit body
- Breaking changes notation
- Verification of Git repository and staged changes
- fzf - Command-line fuzzy finder
- Git
- Download the script:
curl -o /usr/local/bin/commitish https://raw.githubusercontent.com/victor141516/commitish/refs/heads/master/commitish
- Make the script executable:
chmod +x /usr/local/bin/commitish
Basic usage:
commitish
This will prompt you to:
- Select a commit type (feat, fix, docs, etc.)
- Optionally provide a scope
- Enter a commit message
- Optionally specify breaking changes
Start with a specific commit type:
commitish fix # Pre-selects the "fix" type
Include a multi-line commit body:
commitish -b
Combine type and body flag:
commitish feat -b
-h, --help Show the help message and exit
-b, --body Include a commit body (multi-line description)
--no-verify Skip git hooks (passes --no-verify to git commit)
Type | Description |
---|---|
feat | A new feature |
fix | A bug fix |
docs | Documentation only changes |
style | Changes that do not affect the meaning of the code |
refactor | A code change that neither fixes a bug nor adds a feature |
perf | A code change that improves performance |
test | Adding missing tests or correcting existing tests |
build | Changes that affect the build system or external dependencies |
ci | Changes to CI configuration files and scripts |
chore | Other changes that don't modify src or test files |
revert | Reverts a previous commit |
Contributions are welcome! Feel free to:
- Fork the repository
- Create a feature branch:
git checkout -b feature/amazing-feature
- Commit your changes:
commitish
😉 - Push to the branch:
git push origin feature/amazing-feature
- Open a Pull Request
- Conventional Commits for the commit message specification
- commitizen for inspiration