【git】masterブランチへのプッシュを禁止する
gitへのmasterプッシュの危険性
gitのmasterプッシュは少しばかり危険。masterとは安定に動く最新のバージョンという立ち位置であるので、こちらに修正中で動作保証されていないコードが入るのは非常に良くないことである。
ですので、gitではmasterプッシュはできないよう設定するべきだと私は思っています。(個人開発ではその限りではないかもしれませんが…)
gitへのmasterプッシュを禁止する
gitのリモートリポジトリへプッシュできないように禁止していきます。
設定を追加する
gitリポジトリにはgit_templateという機能があり、こちらではgitリポジトリをcloneした際に適用されるようになります。
gitのローカルリポジトリ以下の.git/hooks内にpre-pushというファイルを作成し、以下のような内容を記述します。
#!/bin/bash # pushを禁止するブランチ readonly MASTER='master' readonly RELEASE='^.*release.*$' # 「release」文字列を含む全てのブランチ while read local_ref local_sha1 remote_ref remote_sha1 do if [[ "${remote_ref##refs/heads/}" = $MASTER ]]; then echo -e "\033[0;32mDo not push to\033[m\033[1;34m master\033[m \033[0;32mbranch\033[m" exit 1 fi if [[ "${remote_ref##refs/heads/}" =~ $RELEASE ]]; then echo -e "\033[0;32mDo not push to\033[m\033[1;34m release\033[m \033[0;32mbranch\033[m" exit 1 fi done
このファイルに実行権限を付与します。
chmod 755 .git/hooks/pre-push
これでOKです。
ディスカッション
コメント一覧
まだ、コメントがありません