LoginSignup
90

More than 5 years have passed since last update.

masterのpushを常に禁止する

Posted at

masterへpushできなくする

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

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

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

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

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を使うように変更をした方がいいと思います。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
90