git fetchзавантажує нові коміти й гілки з віддаленого репозиторію і оновлює віддалені гілки (origin/main). Ваші локальні гілки й робочі файли не змінюються.git pull=fetch+ інтеграція змін у поточну гілку (за замовчуваннямmerge, абоrebase, якщо так налаштовано).
git fetch
git log main..origin/main # що нового на сервері, ще до злиття
git diff main origin/main # які саме зміни
git merge origin/main # або git rebase origin/main
Чому fetch корисний: спершу подивитися, що змінилося, і лише потім вирішити, як інтегрувати. pull робить усе одразу, і при конфлікті ви опиняєтеся посеред злиття без попередження.
Налаштування pull, яке варто знати:
git config --global pull.rebase true # pull через rebase - без зайвих комітів злиття
git config --global pull.ff only # або: лише перемотування, інакше помилка
Без явного налаштування сучасний Git при розбіжності гілок відмовляється робити pull і просить обрати стратегію.
Типова ситуація: «у мене не той код, що на сервері» - часто просто не зроблено fetch, і origin/main у вас застарілий.