git push origin 今いるブランチ
の反対は、git pull origin 今いるブランチ
だと思ったらそうじゃなかったのでまとめます。
登場人物紹介
- 現在のローカルブランチ →
google-button
- Default のリモートブランチ →
master
- 追跡ブランチ →
origin/master
やったこと
$ git pull origin HEAD
$ git pull origin google-button
が失敗したので、無理やり、
$ git pull origin HEAD
* branch HEAD -> FETCH_HEAD
とやったら、自分の望んだ通り、現在のローカルブランチにリモートブランチがマージされた。
ここで出てくる言葉を整理すると、
-
origin
は GitHub リポジトリ URL の別名 -
HEAD
はデフォルトで設定されているリモートのブランチ-
git branch -a
で確認できる。-
HEAD
は今いるブランチだと思って上記コマンドを打った。
-
-
$ git pull origin master
pull
についての説明でよく出てくるのはこっち。
$ git pull origin master
* branch master -> FETCH_HEAD
XXXXXXX..XXXXXXX master -> origin/master
-
git pull origin HEAD
と同様、現在のローカルブランチにリモートブランチがマージされた。
$ git fetch
→ $ git merge origin/master
git pull
= git fetch
+ git merge
ということなので。
$ git fetch
master -> origin/master
- リモートブランチが追跡ブランチにマージされた。
- この時点で
git checkout FETCH_HEAD
すると、fetch
されたコードがみれた。
$ git merge origin/master
- 現在のローカルブランチに追跡ブランチがマージされた。
まとめ
git push の反対は git pull ではない によると、
git push
は、ローカルのリポジトリの内容をリモートのリポジトリに送り込むコマンドです。
git fetch
は、リモートのリポジトリの内容をローカルのリポジトリに取り込むコマンドです。
なので、
-
git push
の対になるのはgit fetch
である! -
git pull origin リモートブランチ
を現在のローカルブランチで行ったら、リモートブランチの内容をマージできる!