GitHubのissue番号を自動でcommitに書き、issue番号がないコミットははじくようにするgit hooksまとめ!
①issue番号がないとコミットできない
どうなるかというと。。。
[pall@pall:~](79_imgAddAltTag)$ git st
# On branch 79_imgAddAltTag
# Changes to be committed:
# (use "git reset HEAD <file>..." to unstage)
#
# modified: README.md
#
[pall@kazumasa:~](79_imgAddAltTag)$ git commit -m "test"
コミットにチケット情報入れてーーー
となる
やり方
レポジトリの.git/hooks/commit-msg
に書く
$ cd レポジトリのトップの階層に
$ vim .git/hooks/commit-msg
$ chmod +x .git/hooks/commit-msg
※実行権を付けないとうまく動きません!!!
#!/bin/sh
#チケットに関するログが記載されているかのチェック
exp="(?:close|closed|closes|fix|fixed|fixes|addresses|references|refs|re|see)"
exp=$exp".?(#[0-9]+(?:(?:[, &]+| *and *)#[0-9]+)*)"
grep -E "$exp" $1 > /dev/null
if [ $? -ne 0 ]; then
echo 'コミットにチケット情報入れてーーー'
exit 1
fi
これで完了
②git commit ってするとissue番号が自動付与
どうなるかというと。。
[pall@pall:~](79_imgAddAltTag)$ git commit
1 refs#79
2
3 # Please enter the commit message for your changes. Lines starting
4 # with '#' will be ignored, and an empty message aborts the commit.
5 # On branch 79_imgAddAltTag
6 # Changes to be committed:
7 # (use "git reset HEAD <file>..." to unstage)
8 #
9 # modified: README.md
10 #
ってなる。
git commit -m "test"
だとうごかない。。
branch名を isuue番号_branch名
にすること!!
1isuue 1branch !!
やり方
$ cd レポジトリのトップの階層に
$ vim .git/hooks/prepare-commit-msg
$ chmod +x .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/^\([0-9]*\).*/\1/g"`" > $1
cat $1.tmp >> $1
fi
で完了。
参考:
番外編
shではなく、rubyでもかけるって。。
Author And Source
この問題について(GitHubのissue番号を自動でcommitに書き、issue番号がないコミットははじくようにするgit hooksまとめ!), 我々は、より多くの情報をここで見つけました https://qiita.com/PallCreaker/items/c91bc201fb8562c8fbd3著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .