Git/fetch

なんだかいろんなところの説明読んでもしっくりこなかったので自分の感覚でまとめておく。感覚なので実内部構造と違うかもしれん。

ローカルの Git リポジトリにはリモートの変更を一時的に置いておくfetch領域的なブランチ置き場がある。 Hg の場合は Pull してきたら対象のブランチが自動的にマルチヘッド状態になるが、Git ではリモートの変更ハンドリング用のブランチが勝手にできると考えればいいのか。

$ git fetch origin master

これによりローカル側に origin/master というブランチが出来上がった。ここにリモートの変更が詰まっている。ここまでくると後は単なるブランチ操作なので

$ git checkout master
$ git merge origin/master

で本線の master ブランチにリモートハンドリング用のブランチを統合すれば取り込みが完了する。この fetch と merge を一気にやるのが pull コマンドである

$ git checkout master
$ git pull origin master
vcs/git/fetch.txt · 最終更新: 2017-09-29 12:20 by ore