git fetch と git pull の違い、どちらを使うかを解説します。
目次
git fetch と git pull の違い
git fetch と git pull の違いは、「リモートリポジトリ(GitHub)の情報をローカルリポジトリに持ってくるかどうか」です。
git fetch:リモートリポジトリ(GitHub)の情報をローカルリポジトリに持ってくる
git pull :リモートリポジトリ(GitHub)の情報をローカルリポジトリとワークツリーに持ってくる
つまり
git fetch + git merge = git pull
です。ただし注意点があるので、次で解説します。
git pull の注意点
git pull の注意点は、「ローカルリポジトリとワークツリーで、どのブランチに情報が同期するのか決まり方が違うところ」です。
git fetch :指定したローカルリポジトリのブランチに情報を持ってくる
git merge:現在いるワークツリーのブランチに情報を持ってくる
git pull :指定したローカルリポジトリのブランチに情報を持ってくるが、現在いるワークツリーのブランチに情報を持ってくる
例↓
以下のコマンドを実行すると
git pull origin hoge
remotes/origin/hoge(ローカルリポジトリ)に情報を持ってくる
が
ワークツリーは現在いるブランチに情報を持ってくる
注)普通に考えたら ワークツリーもhogeブランチ に情報を持ってくると思うが、現在いるブランチに情報を持ってくる。
このような理由で git pull より git fetch + git merge のほうがミスが少なくなる。
git fetch + git merge と git pull どっち使う?
上記「git pullの注意点」の理由から、git fetch + git merge を使う。