Command-line utility for managing a Git commit message template within the current project.
- Optional issue reference
- Optional Co-authored-by line
With Go:
go install github.com/carhartl/git-commit-template/cmd/git-commit-template
Via Homebrew:
brew install carhartl/tap/git-commit-template
Pass issue ref numbers with or without prefix:
git-commit-template set --issue 123 --dry-run
git-commit-template set --issue #123 --dry-run
Produces:
Subject
Addresses: #123
Pass co-author with fuzzy matching entries in author file:
echo 'John Doe <john@example.com>' >> $HOME/.git-commit-template-authors
echo 'Mary Tester <mary@example.com>' >> $HOME/.git-commit-template-authors
git-commit-template set --pair doe --dry-run
Produces:
Subject
Co-authored-by: John Doe <john@example.com>
Multiple co-authors:
git-commit-template set --pair doe --pair mary --dry-run
Produces:
Subject
Co-authored-by: John Doe <john@example.com>
Co-authored-by: Mary Tester <mary@example.com>
Tip:
Due to the executable's naming you can also call it like so:
git commit-template ...
E.g. use with your favorite Git alias...
Env var | Default |
---|---|
GIT_COMMIT_TEMPLATE_AUTHOR_FILE |
$HOME/.git-commit-template-authors |
GIT_COMMIT_TEMPLATE_ISSUE_PREFIX |
# |
GIT_COMMIT_TEMPLATE_TEMPLATE |
Subject{{if .Issue}}\n\nAddresses: {{.Issue}}{{end}}{{if .CoAuthors}}\n{{end}}{{range .CoAuthors}}\nCo-authored-by: {{.}}{{end}} |
GIT_COMMIT_TEMPLATE
is a Go template string.
op run --env-file .env -- ./release.sh 0.1.0