LoginSignup
4
3

More than 5 years have passed since last update.

git push origin master を禁止するbash設定

Last updated at Posted at 2019-01-19

GitHubを使用しているとうっかり git push origin master でmasterブランチを上書く事がありますがそれを防ぐためのbash設定の紹介になります。
bashコマンドのフック処理を覚えておくと色々と応用が利きそうなのが試みた動機になります。

設定手順

ターミナル上のコマンドをフックするために bash-preexec を利用します。
任意のディレクトリにダウンロードしてください。

cd ~
git clone git@github.com:rcaloras/bash-preexec.git

~/.bash_profile に以下のコードを追加して source ~/.bash_profile で反映させます。
origin 以外に upstream も対象にするならif文を追加してください。

source ~/bash-preexec/bash-preexec.sh

preexec_functions=() # source ~/.bash_profile を複数回実行するとコマンドが複数登録されてしまう
preexec_functions+=(ignore_push_master)

ignore_push_master() {
  if [ "${1}" = "git push origin HEAD:master" ]; then
    echo "Don't use 'git push master' !!"
    kill -INT 0
  fi

  if [ "${1}" = "git push origin master" ]; then
    echo "Don't use 'git push master' !!"
    kill -INT 0
  fi
}

参考サイト

以下のサイトからヒント、インスピレーションをいただきました。感謝!

4
3
0

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
4
3