sato.masaki

2014.05.01

git pushのおさらい(push.default)

こんにちは。moniplaを担当している佐藤(ま)です。
アライドでは「大佐」と呼ばれております。

最近コマンドに慣れてきて SourceTree を使わなくなってきました。

さて今回は、v2.0が出る前に ‘git push’ の ‘push.default’ 設定の挙動をおさらいをしたいと思います。

v2.0からは以下にある(git push の度に出力される)ように、’git push’ のデフォルトが ‘matching’ から ‘simple’ へ変更されるようで、現在のままにしたい人は default 設定を予め ‘matching’ に設定しておいてね、ということのようです。

これに関して色々記事はあがっていますが、自分なりに挙動を確認したかったのでまとめてみました。
では、’git push’ の挙動を実際に設定変えながら確認してみたいと思います。

事前準備

masterとdevelopブランチを用意
※これらは最初に remote origin へ push してあります。

今回確認するpush.default設定

今回は、以下の2つの設定の動作を確認してみます。
※他にもいくつかあるようですが今回は割愛します。詳しくは以下の記事が参考になります。
http://qiita.com/awakia/items/6aaea1ffecba725be601#3-7
http://qiita.com/misopeso/items/ede49b661cc7ad30528a#3-2

matching

ローカルとリモートで同一の名前のリポジトリがあれば全てpushする。
※ 現在のデフォルト

simple

current branch に追跡 branch が設定されている、かつ local と remote の branch 名が同じである場合に、追跡 branch に対して push する。
※ v2.0 でデフォルトになる予定のもの

matching の git push

・push 対象
スクリーンショット 2014-04-27 15.36.08

また、以下のように push した test branch などは git push で push されません。

・push 対象
スクリーンショット 2014-04-27 15.39.28

simple の git push

・push 対象
スクリーンショット 2014-04-27 16.06.49

simple は追跡ブランチに対して push する為、以下のようにした場合 test branch は push されません。

人それぞれで、ブランチ戦略によるところもありますが、個人的には ‘simple’(か ‘current’ )設定が使いやすいと思います。いずれにせよ、v2.0になったら default 設定が変わるので、今のうちに自分好みの push.default 設定をして慣れておくのが良いかと思います。

今回は以上になります。

アライドアーキテクツではエンジニアを随時募集しております。
興味があればぜひこちらの採用サイトからご応募ください。