A Git CLI plugin for project management.
It lets you create or switch to branches from task strings, enforcing consistent names.
git pm branch "MINOI-31 Zoom d'images dans galerie"
Produces and switches to branch: feature/MINOI-31-zoom-d-images-dans-galerie
.
- Branch sanitization:
- Keeps task IDs in UPPERCASE
- Lowercases the rest, replaces spaces/punctuation with -
- Handles accents and Unicode (e.g. Fixé → fixe, œuf → oeuf)
- Git-aware:
- If branch exists → switches to it
- If not → creates it
- Prefix support:
- Defaults to feature/
- Allowed: feature, bugfix, hotfix, release, wip, chore, epic
- Overridable via .gitpm.toml
- Configurable:
- Project-local config (.gitpm.toml in repo root)
- Global fallback ($HOME/.gitpm.toml)
git pm branch "<TASK-ID> <description>" [--prefix <prefix>]
Examples:
git pm branch "MINOI-31 Zoom d'images dans galerie"
# => feature/MINOI-31-zoom-d-images-dans-galerie
git pm branch "BUG-42 Fix login bug" --prefix bugfix
# => bugfix/BUG-42-fix-login-bug
git pm branch "HOT-77 Production issue" -p hotfix
# => hotfix/HOT-77-production-issue
git pm branch "TMP-99 Experiment" -p wip
# => wip/TMP-99-experiment
Make sure you have Rust installed, then
cargo install git-pm
This provides git pm as a Git subcommand.