.zshrc
に追記するだけ
function disable_git_push_origin_master() {
if [[ $2 = "git push origin master" ]]; then
exit
fi
}
autoload -Uz add-zsh-hook
add-zsh-hook preexec disable_git_push_origin_master
以後
git push origin master
とタイプすると、Terminal.appだと[Process completed]
と出力され以後何もできなくなり、iTerm.appだとウィンドウが閉じる。
## gitのhooksを使うやり方
- git-hooksを使って,誤ってmasterブランチにpushしてしまわないようにした. - hasen's tech life
- master への push を禁止するローカル git hook の正しい書き方 - 永遠に未完成
この辺は見送った。
- repositoryごとに設定=>面等
- グローバルに設定 => .zshrcでもいいのでは
- 動かない既存repositoryがあった
-
${remote_ref##refs/heads/}
がmaster
かどうかをチェックするのが、git hooksのキモなんだが、中身が空になってしまうrepositoryがあり、治し方わからんかった
-
##今後
- 現状(寝ぼけて
git push origin master
は回避できてる)は一応満足 - git hooks使うやり方をちゃんと動くようにする(どっちを使うかを選べれるようにする)