.php に特定の文字列が入っていた場合に git commit を失敗させる pre-commit hook のサンプル

#!/bin/sh
if git rev-parse –verify HEAD >/dev/null 2>&1
then
against=HEAD
else
# Initial commit: diff against an empty tree object
against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi
#for FILE in `git diff-index –name-status $against — | grep -E '\.js(\.coffee)?$'| cut -c3-` ; do
# # Check if the file contains 'console.log'
# grep_result=`grep 'console.log' $FILE | grep -v -E '\s*(\#+|\/\/).*console.log' | grep -v '^$' `
# if [ -n "${grep_result}" ]
# then
# echo $FILE ' contains console.log!'
# echo $grep_result
# exit 1
# fi
#done
for FILE in `git diff-index –name-status $against| grep '\.php$'| cut -c3-` ; do
# Check if the file contains 'debugger'
grep_result=`grep '鼻くそ' $FILE | grep -v -E '\s*\#+.*鼻くそ' | grep -v '^$'`
if [ -n "${grep_result}" ]
then
echo $FILE ' contains 鼻くそ!'
echo $grep_result
exit 1
fi
done

インストール方法

$ cd /path/to/git_repo/.git/hooks
$ wget https://gist.githubusercontent.com/wokamoto/d9fa955004231c63a175/raw/71c011ec700a8d36d4e362fb09739b3333b2f434/pre-commit.keyword-check.sample
$ mv pre-commit.keyword-check.sample pre-commit
$ chmod +x pre-commit

これで、php ファイルに ‘鼻くそ’ という文字列が入っている場合に git commit を失敗させることができます。

どうしても、鼻くそが入ったまま commit したい場合は

$ git commit --no-verify

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中