git fetch downloads new data from the remote — but doesn't touch your working files. It's like looking at the library menu without ordering anything.
git pull =
git fetch +
git merge
Pull does everything at once. Fetch gives you control —
you can see what changed before merging.
After fetch, new commits live in origin/main
(a tracking branch) — your local main is untouched
until you explicitly merge.
You fetched first, saw what was coming, then merged
on your own terms. That's the safest workflow:
git fetch → review →
git merge