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 リモートブランチを現在のローカルブランチで行ったら、リモートブランチの内容をマージできる!