gitのfetchとpullの違いについて
gitのfetchとpullの違いについて調べてみました。
1.ローカルブランチとトラッキングブランチ
fetchとpullの違いについて説明する前に、ローカルブランチとトラッキングブランチについて説明します。
gitのリポジトリには、
- リモートリポジトリ
- ローカルリポジトリ
の2つがあり、さらにローカルリポジトリには、
- ローカルブランチ
- トラッキングブランチ
の2つのブランチがあります。
トラッキングブランチはリモートブランチの変更に追従し、ローカルブランチとリモートブランチを結びつける役割を果たしています。
"origin/master"がトラッキングブランチに該当します。
図にまとめると次のようになります。
2.fetchとは
fetchは「トラッキングブランチの更新」です。
$ git fetch
を実行すると、更新されるのはトラッキングブランチのみです。
ローカルブランチにも変更を反映するにはmergeが必要です。
3.pullとは
pullは「トラッキングブランチの更新とローカルブランチのマージ」です。
$ git pull origin master
を実行すると、トラッキングブランチが更新され、ローカルブランチにマージされます。
まとめると、
- fetch:トラッキングブランチの更新
- pull:トラッキングブランチの更新とローカルブランチのmerge
ということですね。
Posted by yujiro このページの先頭に戻る
- Github を Windows で利用する(ローカルPCにリモートリポジトリの複製を作る)
- Github を Windows で利用する(Git GUI編)
トラックバックURL
コメントする
greeting