今までなんとなく、fetchしてmergeするのを一気にやってくれるのがpullという理解で、詳しく調べたことがありませんでした。 改めて調べてみたのでまとめます。 前提知識 fetch, merge, pullを理解する上で欠かせないのが以下の言葉です。 リモートリポジトリ: GitHubなどリモート上に存在するリポジトリ ローカルリポジトリ: PC上に存在するリポジトリ リモート追跡ブランチ: origin/mainなど、リモートリポジトリを追跡するブランチ ローカルブランチ: mainなど、ローカル上で実際に扱うブランチ 図にすると以下のようになります。 すこしわかりにくいのがリモート追跡ブランチですね。 これはリモートブランチの状態をとりあえずローカルに持ってきている場所というような理解であっていると思います。 ここで大事なのは、リモート追跡ブランチはあくまでローカルにあるブランチ