【Git】git fetch と git pull の違い、どちらを使うか

当ページのリンクには広告が含まれている可能性があります。

git fetch と git pull の違い、どちらを使うかを解説します。

▼ おすすめ本
» 世界一流エンジニアの思考法
※Amazon公式サイトへ遷移します

目次

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 を使う。

▼ おすすめ本
» 世界一流エンジニアの思考法
※Amazon公式サイトへ遷移します

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次