π A customizable Git commit wrapper that enforces structured commit messages using emojis, ticket references, and changelogs.
- Supports multiple commit types (Feature, Bugfix, Documentation, etc.)
- Adds emoji, changelog, and optional ticket references
- Opens your preferred editor for rich commit messages
- Supports
-minline message or editor-based commit templates - Falls back to standard
gitbehavior for non-commit commands
go build -o git-wrapper main.go
mv git-wrapper ~/bin/git-wrapper
make sure you set an alias git='~/bin/git-wrapper' in your ~/.zshrc or ~/.bashrc
π§ Usage Run it just like git, but use the commit subcommand for enhanced functionality:
git commit --type feat --ticket ABC-123 -m "add user registration"
Or use the editor for detailed commit messages:
git commit --type fix --ticket DEF-456
Optional Flags
Flag Description
--type Commit type (feat, fix, docs, etc.)
--ticket Ticket ID(s), comma-separated
-m, --message Commit message (if skipping editor)
π§ Commit Message Template (Editor) When using the editor, a rich template is provided:
π Feature: EDIT TITLE [ABC-123]
π Description:
Explain what this commit does and why.
π¦ Changelog:
- added_file.go
~ modified_file.go
π Affected files:
- added_file.go
~ modified_file.go
π Related Ticket(s):
- ABC-123
If the title still contains EDIT TITLE, the commit will be aborted.
| Name | Short | Emoji | Display Name |
|---|---|---|---|
| feature | feat | π | Feature |
| fix | bug | π | Bugfix |
| chore | chore | π§ | Chore |
| documentation | docs | π | Documentation |
| refactor | refactor | β»οΈ | Refactor |
| test | test | π§ͺ | Test |
| perf | perf | β‘ | Performance |
| ci | ci | π¦ | CI/CD |
| config | cfg | π§ | Configuration Change |
| network | net | π | Network Change |
| misc | misc | π | Miscellaneous |
| first-commit | first | π | First Commit |
| milestone | mile | π | Milestone |
| release | release | π― | Release |
| style | style | π¨ | Style Change |
| revert | revert | βͺ | Revert |
| merge | merge | π | Merge |
| security | sec | π | Security Fix |
| build | build | ποΈ | Build System |
| deprecate | depr | ποΈ | Deprecation |
| ux | ux | π‘ | UX Improvement |
| ui | ui | πΌοΈ | UI Update |
| hotfix | hotfix | π | Hotfix |
| lint | lint | π§Ή | Linting |
| env | env | π± | Environment Setup |
| legal | legal | π | Legal/Compliance |
| infra | infra | π | Infrastructure Change |
| i18n | intl | π | Internationalization |
| analytics | analytics | π | Analytics/Tracking |
| rollback | rollback | β©οΈ | Rollback |
| prototype | proto | π§ͺ | Prototype/Experiment |
| log | log | π | Logging |
| monitoring | mon | π | Monitoring |
| bump | version | π | Version Bump |
π Requirements Go 1.16+
Git installed and available in PATH
$EDITOR environment variable set (default: vim)