masterのpushを常に禁止する

  • 92
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

masterへpushできなくする

masterブランチ消しちゃった\(^o^)/

みたいな事が往々にしてあるので、
githubのPull Requestみたいに、
手元でマージしなくてもマージ可能な環境では、
developへのpushは禁止にしておくのがいいと思います。

以下のサイトに書かれているようなpre-commitスクリプトを、
そっくりそのままファイル名をpre-pushとすることで、
masterへのpushを禁止することができるようになります。

commitを禁止してても(たぶん)pushで削除はできてしまうので、pushも禁止にしておいた方が確実です(´・_・`)

http://blog.kazu634.com/2013/03/16/do-not-commit-on-master-branch/

push禁止スクリプトを自動でコピーする

ただ、これだけだとコピーするのを忘れた瞬間に終わるので、
clone時に自動でコピーされるようにします。

以下のように.gitconfigに書き、
~/.git_template/hooks/pre-pushに上記のpre-pushスクリプトを置くことで、
自動的にコピーされるようになります。

[init]
        templatedir = $HOME/.git_template

作成したpre-pushスクリプトにchmod +xで実行権限を与えるのも忘れないでください。

なお、pre-pushスクリプトは比較的新しいgitじゃないと動かないらしいです(1.8.3.4では動いています)。
そのため、SourceTree等のgitを内蔵しているソフトを利用している場合は、
システムのGitを使うように変更をした方がいいと思います。