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/commitishBasic usage:
commitishThis 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" typeInclude a multi-line commit body:
commitish -bCombine 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
