Gitのフックでpushをブロック
Gitリポジトリによろしくないデータがpushされそうになったらブロックしたい。 具体的には、位置情報をうっかり消し忘れた画像データとかそういった類。 そもそもcommitできないようにするのがベストなのだけど、ローカルでフックを効かせられる環境ばかりでもないので。
使えそうなサーバサイドフックは pre-receive か update になるわけだけど、ユーザ視点で見ると違いがいまいちピンとこない。
なんだか update が pre-receive の上位互換に思えてしまうけれど、そう単純な話ではないのかもしれない。
ともあれ今回の用途ではきっとどちらでも良くて、update の方が実装はすこしだけ楽。
というわけで書いてみたところこんな感じになった。
ぐるぐる回してるところはこの解説を参考にさせてもらった。
検査が雑な気がするけれど、保険くらいの気持ちで置いているのでこの程度で。