8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

コミットメッセージにブランチ名を自動入力する

Last updated at Posted at 2020-06-05

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が立ち上がります。

8
6
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
8
6

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?