GithubのISSUE番号や、解決したいチケットの番号をブランチ名にすることがあるかと思います。
その番号を各コミットメッセージに入れておけば、コミットメッセージから関連ISSUEやチケットをたどることが簡単になるので、コミットの意図がわかりやすくなって便利になります。
ただ、手動でコミットメッセージに番号を打つのは面倒なので、git hooksを設定して、自動でコミットメッセージに入力されるようにします。
Templateを設定する
まずはコミットメッセージのテンプレートを設定します。
個人的には、emoji prefixが確認しやすいテンプレートを使いたいので、Goodpatchのテンプレートを参考にして、以下のようなテンプレートを使用しています。
# 置く場所はご自由に
$ vi ~/.commit_template
~/.commit_template
{branch}
# ==== Emojis ====
# 🎉 :tada: 盛大に祝うべき大きな機能追加
# 🎨 :art: 見た目の追加・修正
# 🔧 :wrench: 機能の修正
# ♻ :recycle: リファクタリング
# 🚿 :shower: 不要な機能・使われなくなった機能の削除
# 📝 :pencil: ドキュメントやコメントの追加・修正
# 🚚 :truck: ファイルの移動
# 🤖 :robot: テストの追加・修正
# 🆙 :up: 依存パッケージなどのアップデート
# 👮 :cop: セキュリティ関連の改善、Warningの解消
このテンプレートを任意のプロジェクトのgitテンプレートに設定します。
# 任意のプロジェクトで
$ git config commit.template ~/.commit_template
Hooksを設定する
次に、.commit_templateに記載した{branch}
にブランチ名が入るようにhooksを設定します。
# 任意のプロジェクトで
$ vi .git/hooks/prepare-commit-msg
#!/bin/sh
## prepare-commit-msg
branch=$(git branch | grep "*" | awk '{print $2}' | sed -e 's/[\/_]/ /g')
perl -i.bak -ne "s/{branch}/$branch/g; print" "$1"
編集が完了したら、権限を付与して適用します。
# 任意のプロジェクトで
$ chmod +x .git/hooks/prepare-commit-msg
$ git init
これで、ブランチ名が入った状態で.commit-template
が立ち上がります。