git pushを間違えないために


gitを使い始めた頃に”git push origin branch名“というコマンドでいつかミスが起きるだろうなーと思い続けていました。”origin master“とか、いつか無意識に間違ってタイプしちゃうんだろうなぁと。かといって、コマンドに慣れてしまうと、SourceTree等のGUIツールを常に使うのも少々面倒。

そこで、ようやくコマンドで間違えないpushの方法を見つけました。

それは常に”git push“を使うこと。よくgitの解説等には、push先を間違えないように”git push origin branch名“と明示しましょうなんて記事がありますが、それとは逆をいきます。

以下、詳細。

1. pushのdefaultの挙動をsimpleに設定する

git config --global push.default simple

git 1.x系の挙動のdefaultはmatchingで、このままだと、git pushでリモートとローカルのブランチ名が同じものは構わずpushしてしまいます。

↑使いようによっては便利だけど、なんでこれがデフォルトなんだろう。。

で、git v2.0からデフォルトになる予定のsimpleってやつは、現在のブランチ上でなおかつ追跡ブランチが設定されている場合のみ、追跡ブランチへpushします。

詳細は以下のサイトにまとまっているので、ご参考に。
http://qiita.com/misopeso/items/ede49b661cc7ad30528a

2. ブランチのセットアップ時に追跡ブランチを設定する

まず、以下のコマンドで現在のローカルのブランチがどの追跡ブランチにせっとされているかを調べる癖をつけましょう。

git branch -vv

以下のタイミングで必ず-vvで確認すべし、セットされていなければ、設定する。

  • リポジトリをcloneした時
  • 新しくブランチを作成した時
  • ブランチを切り替えた時

以下の例は対象のブランチに切り替えている状態で、追跡ブランチbranch1を設定する例。

git branch -u origin/branch1

3. あとは構わずgit push
設定ができていれば、常に”git push“だけで安心!!!