
Git hooksとは
Gitに特定のアクションが発生した時にスクリプトを実行する仕組み。
例えばコミットをするときにテキストをチェックして禁止用語が含まれている場合はコミットしないことが可能になる。
スプレッドシートで正誤表を作る
まず最初にスプレッドシートで正誤表を作る。
作成したら2行目以降をコピーして、~/に.git_words_checkというファイルを作成してペーストして保存する。
.git_words_checkファイルの内容(タブで区切られている)
ゲルルグ ゲルググ ハンムラビ ハンブラビ クシャトリア クシャトリヤ
pre-commitファイルの作成
次にコミットが発生した時に実行されるスクリプトを作成する。
.git/hooks/ にある pre-commit.sample のファイル名を pre-commit にリネームして、下記のスクリプトに書き換える。
#!/bin/sh
if [ $? -eq 0 ]; then
if [ -e ~/.git_words_check ]; then
while read word; do
word_a=( `echo ${word} | tr -s '\t' ' '`)
echo ${word_a[0]} | grep ^# > /dev/null && continue
echo ${word_a[0]} | grep '^\s*$' > /dev/null && continue
git diff --cached -U0 | grep -i "${word_a[0]}" > /dev/null
if [ $? -eq 0 ]; then
echo "禁止文字が含まれています。 ☓ ${word_a[0]} ○ ${word_a[1]}" >&2
exit 1
fi
done < ~/.git_words_check
fi
fi
以上でコミットしたときに禁止文字が含まれていた場合はコミット時に表示され、修正されるまでコミットされなくなる。
<!-- index.html 例 --> <html> <body> <p>ゲルルグのプラモを買った</p> </body> </html>
$ git add index.html modified: index.html $ git commit -m "Add text" 禁止文字が含まれています。 ☓ ゲルルグ ○ ゲルググ



