Help us understand the problem. What is going on with this article?

ブランチ名に issue 番号が入ってる時に、コミットメッセージに自動で issue 番号を入れる件

開発を進めていく際に、Git のコミットメッセージ内に「#145」みたいなのを書いておくと、関連する issue がすぐわかるので、なんとなく便利そうな気がしていてちまちま書いています。

GitHub だとリンクをつけてくれるのもなかなか便利です。PR 作って開発をしていたら PR へのリンクは自動で入るんですけどね。個人のプロジェクトだと PR は作らないので、まあそこは手動で妥協しているというわけでもあります。

Moca 2019-09-23 10-41-10.png

で、ちまちま手入力するのも結構ダルいんで、自動で入力できるようにしました。幸い会社では、ブランチ名を issues/100-something とする文化があってそれに合わせて運用してるんで、ブランチ名から自動で取得できます。 .git/hooks/prepare-commit-msg というファイルを用意すると、コミットメッセージに対してスクリプトを実行できるんで、この機能を使いました。

こんな感じ。

#!/bin/sh

COMMIT_MSG_FILE=$1
COMMIT_SOURCE=$2
SHA1=$3

number=`git branch 2> /dev/null | egrep '^\*' | cut -b 3- | sed -e "s/^issues\/\([0-9]*\).*/[#\1] /g"`

if [[ $number == "[#"* ]]
then

case "$COMMIT_SOURCE,$SHA1" in
 ,|template,)
   /usr/bin/perl -i.bak -pe '
      print "'"${number}"'"
     if /^\n/ && $first++ == 0' "$COMMIT_MSG_FILE" ;;
 *) ;;
esac

fi

git commit すると、コミットメッセージの頭に [#145] というのが自動で入ります。便利!!

Why do not you register as a user and use Qiita more conveniently?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away