Gitでgit push origin master
を禁止するやり方
背景
個人開発では自由ですが、チーム開発でmasterにpushすると信用を失いかねません。masterにpushしないようにしようと心がけることは大事ですが、人間はミスをする生き物なので、機械に未然に防いでもらいたいものです。今回はそのやり方を共有します。
gitのhooksを使うやり方
1 .git/hooks/pre-push
を作成
2 .git/hooks/pre-push
を編集
#!/bin/bash
while read local_ref local_sha1 remote_ref remote_sha1
do
if [[ "${remote_ref##refs/heads/}" = "master" ]]; then
echo "Do not push to master branch!!!"
exit 1
fi
done
3 作ったファイルに実行権限を付与
$ chmod a+x .git/hooks/pre-push
これでターミナルを再起動すれば、該当レポジトリでgit push origin master
をした時にターミナルに
Do not push to master branch!!!
と表示されます。
.zshrc
に追記する方法もある
http://qiita.com/akymrk/items/b46b03b313850e3ae418
しかし、私の場合、他人に迷惑のかからない個人プロジェクトではmasterに直接pushしたいのでこちらの採用は見送った。