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
}
参考サイト
以下のサイトからヒント、インスピレーションをいただきました。感謝!