何者にもなれていない5年目のエンジニアブログ

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が該当)