トップページへ

gitのfetchとpullの違いについて

小粋空間 » github » gitのfetchとpullの違いについて

gitのfetchとpullの違いについて調べてみました。

1.ローカルブランチとトラッキングブランチ

fetchとpullの違いについて説明する前に、ローカルブランチとトラッキングブランチについて説明します。

gitのリポジトリには、

の2つがあり、さらにローカルリポジトリには、

の2つのブランチがあります。

トラッキングブランチはリモートブランチの変更に追従し、ローカルブランチとリモートブランチを結びつける役割を果たしています。

"origin/master"がトラッキングブランチに該当します。

図にまとめると次のようになります。

gitのリポジトリ構成

2.fetchとは

fetchは「トラッキングブランチの更新」です。

$ git fetch

を実行すると、更新されるのはトラッキングブランチのみです。

fetch

ローカルブランチにも変更を反映するにはmergeが必要です。

fetch

3.pullとは

pullは「トラッキングブランチの更新とローカルブランチのマージ」です。

$ git pull origin master

を実行すると、トラッキングブランチが更新され、ローカルブランチにマージされます。

fetch

まとめると、

ということですね。

« 前の記事へ

次の記事へ »

トップページへ