やることは同じなのでこちらのソースをほぼそのまま使っています。
マスターブランチでのコミットを禁止するpre-commitスクリプト
なぜ必要か
機動的な運用のためwrite権限を持って開発するフローを導入した時
gitに慣れない人が
git push -f origin master
な〜んてコマンドをググってきて打ってしまう
↑困るから禁止
PRからでないとmasterを改変できなくする
導入
cd {githome}/.git/hooks/
vi pre-push
chmod 775 pre-push
#!/bin/sh
# if the branch is master, then fail.
branch="$(git symbolic-ref HEAD 2>/dev/null)" || \
"$(git describe --contains --all HEAD)"
if [ "${branch##refs/heads/}" = "master" ]; then
echo "masterへのpushはダメ〜〜〜〜!!"
exit 1
fi
問題なとこ
各個人のローカルに設定するので、漏れができる可能性はある。運用をしっかり
追記: 現在はgithubにprotected branchの機能が追加されたのでそちらを使うほうが個人ごとの設定に依存しないで済むので好ましいです