LoginSignup
14
14

More than 5 years have passed since last update.

コミットログテンプレートにIssue番号を自動で入れる

Last updated at Posted at 2016-02-14

手元で直した修正がgithubのissueに上がっている事をうっかり忘れて、コミットログに参照を書かずコミットしてしまうことがよくありましたが、ブランチにissue番号を予め入れておくというこの記事のアイデアのおかげでミスはほぼなくなりました。

導入にあたって、git-flowの作るブランチに対応できるように修正を加えました。

.git/hooks/prepare-commit-msg
#!/bin/sh

if [ "$2" == "" ] ; then
  mv $1 $1.tmp
  echo "refs #`git branch | grep "*" | awk '{print $2}' | sed -e 's/.*([1-9][0-9]*).*/\1/'`" > $1
  cat $1.tmp >> $1
fi

元記事では、23_issue_nameのようにブランチの先頭にissue番号を入れるようになっていましたが単に数字を持ってくるようにしています。

ところが、コミットログのテンプレートとこのままでは併用ができません。

そこで、以下のようにテンプレートの{issue}を置き換える形に変更しました。

.git/hooks/prepare-commit-msg
#!/bin/sh
issue=$(git branch | grep "*" | awk '{print $2}' | sed -E 's/.*\/([1-9][0-9]*).*/\1/')
# commit template の {issue}をブランチから抽出した番号に置換する
perl -i.bak -ne "s/{issue}/$issue/; print" "$1"

テンプレートには以下のように書いておきます。

gitmessage.txt

# Explain why this change is being made

# Provide links to any relevant tickets, articles or other resources
refs #{issue}

Issue番号の参照付きのコミットメッセージをより楽に作成することができるようになりました。

14
14
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
14
14