git pull = git fetch + git merge (или rebase с --rebase). git fetch только скачивает коммиты, не меняя текущую ветку.
Разбор
git pull
- Контекстно: merge в текущую ветку.
- Автоматически интегрирует remote-коммиты — без предварительного review diff.
- На плохо организованных ветках чаще конфликты.
git fetch
- Обновляет remote-tracking refs (
origin/main).
- Working tree и текущая ветка не меняются.
- Интеграция вручную:
git merge origin/main или git rebase origin/main.
Практика
git fetch origin
git log HEAD..origin/main --oneline
git merge origin/main
Итог
fetch — безопасное обновление ссылок; pull — fetch + автоматический merge в текущую ветку.