こんにちは、新卒エンジニアの id:kaoru-k_0106 です
何をしたか
私のチームでは、コミットメッセージの先頭にチケット番号を入れるルールがあります。
例えば、PROJECTNAME-123 〇〇の処理を変更した
だと、PROJECTNAME-123
の部分がチケット番号です。
最初はこれを手動で入力していたのですが、時々入力を忘れることがあり自動挿入しようと思いました。 ちょうど、トピックブランチ名がチケット番号だったので、ブランチ名を使う方針で実装をしました。
導入手順
その1 Gitのコミットテンプレートを設定する
Gitのコミットテンプレートとは、コミットメッセージエディタを開いたときにデフォルトで設定されている文字列です。
この設定は、次のようにテンプレートファイルを作成し、git config
で設定できます。
% echo '[branch-name]' > ~/.commit_template % git config commit.template ~/.commit_template
その2 Git Hooksでコミットテンプレートをブランチ名に置き換える
次に、このコミットテンプレート内の[branch-name]
をブランチ名に置き換えるためにGit Hooksを使用します。
具体的には、.git/hooks/prepare-commit-msg
を実行権限をつけて置きます。
#!/bin/sh current_branch=$(git rev-parse --abbrev-ref HEAD) sed -i "s/\[branch-name\]/$current_branch/" $1 # Macだと以下のようにする # sed -i "" "s/\[branch-name\]/$current_branch/" $1
これで、ブランチ名が自動で挿入されるようになりました。 実際に挿入されるか確かめてみます。
動作確認
git commit
を叩くと、[branch-name]
がブランチに置き換わった状態でコミットメッセージエディタが開きます。
ちなみに、Visual Studio Code (VSCode)のソース管理機能でコミットした場合もブランチ名に置き換わります。
入力欄ではテンプレートの[branch-name]
がそのまま表示されていますが、コミットするとブランチ名に置き換わります。
おわりに
これだけでコミット時にブランチ名を自動挿入することができました。 ミスを減らすことができ、チームの開発効率にも貢献できると思います!