git pushとgit pullの挙動 (引き数ありと無しでどう違うのか)
git push とgit pull が引き数の有無によってどのように振る舞いが変わるか
1. git pullの有効範囲
ローカル:今チェックアウトしているブランチ(カレントブランチ)がb1 で master、b2とブランチがあり、 リモート:master、b1、b2、b3とブランチがある状態
問:この時、git pullすると何を取得し、何が更新されるか
解:今チェックアウトしているブランチ(カレントブランチ)のみ適応
引数を入れないで、git pullするとカレントブランチのb1がリモートにある場合のみ、カレントブランチb1の情報がfetch、mergeされる。 トラッキングブランチを持ってきて、今いるカレントブランチに該当するブランチがある場合、merge(rebase)される。
参考:http://d.hatena.ne.jp/hokaccha/20120404/1333507076
⬆ここでもっと詳しい挙動が書かれてます。
2. git pushの有効範囲
ローカル: カレントブランチb1、 master、b2、b3が存在 リモート:master、b1、b2が 存在
問: この時、git pushするとどうなるか?
解:ローカルのカレントブランチに関係ない。
ローカルに存在するブランチで、リモートに存在するブランチすべてにプッシュされる。(この場合、リモートにあるmaster、b1、b2が該当)