git commitの前に「動作確認した?」のメッセージを表示してみた

よっしゃ実装完成したー!コミットしよー。って短絡的にコミットやプッシュをしたことありませんか? 人間はミスが多い生き物ですし、自分は特にミスをするタイプです。

そんな人間は実装した後に、きちんと動作確認するべきですが、動作確認すらも簡単にしちゃうこともありますよね。 それを少しでも防ぐ仕組みを作りたい!

ってことで「動作確認した?」をコミット時のメッセージに表示してみます。

globalなgit-hooksを設定

# git-hooks/hooks`ディレクトリを作成(ディレクトリ名は何でも可)
$ mkdir -p git-hooks/hooks
# pre-commitファイルを作成
$ touch git-hooks/hooks/pre-commit
# 実行権限を付与
$ chmod a+x git-hooks/hooks/pre-commit

pre-commitを以下のように編集

#!/bin/bash

exec < /dev/tty
read -p "動作確認済みですか?"

作成したディレクトリをhooksに設定

$ cd git-hooks
# core.hooksPathに~/git-hoos/hooksを設定
$ git config --global core.hooksPath $(pwd)/hooks
# この時点でgit config -lを見てみるとcore.hookspathに登録されています
$ git config -l   
...
core.hookspath=/Users/makky/git-hooks/hook
...

これだけでOK。

試してみる

$ cd ~
# 適当なプロジェクトを作りコミット
$ mkdir git-hooks-test
$ cd git-hooks-test
$ git init
$ touch sample.txt
$ git add sample.txt
$ git commit -m 'git hooks test'

成功しました。Enterを押したら正常にコミットされます。大満足。

終わりに

今回は簡素にコミット時にうっかりを防ぐための対策をしてみましたが、もっとイケてる感じに対策ができたら投稿してみたいと思います。

参考