はじめに
開発時に「ちょっと本番データを見てみたい」とフラグをいじって、コミットする前に元に戻すのをうっかり忘れないように、今までは .gitignore を使っていました。しかし当該フラグ以外に設定ファイルを編集したいこともしばしばあること、リポジトリに含めているファイルを .gitignore に記述するのは本来あるべき運用とは思えないことから他の方法をとることにしました。
フックによるチェック
pre-commit のフックで「あるべき設定値」のが存在していることを確認します。
後々、コミットが失敗したときに理由がわからないと困るので、フックによるチェック処理を行っている旨、最初に echo します。
# !/bin/sh
echo "hooks/pre-commit で設定ファイルを確認します。"
configFile=my_config.config
# 設定ファイルの存在を確認する。
if [ ! -e $configFile ]; then
echo "${configFile} が存在しません。"
exit 1
fi
# 本番環境を使用しない設定であることを確認する。
grep UseProductEnvironment=0 $configFile
if [ $? != 0 ]; then
echo -n "Error: 本番環境を使用する設定になっています。"
echo "コミットする際はフラグを戻してください。"
exit 1
fi
echo "コミット OK です。"
exit 0
確認したいことが増えたら grep や if を増やしていけばよいかと思います。
これでうっかりコミットを防ぎます。