Skip to main content

Що відбувається за умовчанням при git pull?

За умовчанням git pull виконує дві операції поспіль:

git fetch + git merge

Тобто Git:

  1. забирає зміни з віддаленого репозиторію
  2. зливає їх у поточну локальну гілку через merge

Розберемо по кроках

Коли ти виконуєш:

bash
git pull

Git робить наступне:

1. git fetch

  • завантажує нові коміти з віддаленого репозиторію
  • не чіпає твій робочий код
  • оновлює віддалені посилання (origin/main, origin/dev тощо)

2. git merge

  • бере відповідну віддалену гілку
  • зливає її в поточну локальну гілку
  • за потреби створює merge-коміт

Саме merge використовується за умовчанням.


Приклад

Ти перебуваєш у гілці main:

bash
git pull

Це еквівалентно:

bash
git fetch origin git merge origin/main

Що відбувається з історією

  • історія не переписується
  • можливий merge-коміт
  • якщо є конфлікти - Git зупиниться і попросить їх вирішити

Важливий момент (часто запитують)

git pull НЕ робить rebase за умовчанням

Якщо хочеш rebase, потрібно явно вказати:

bash
git pull --rebase

або налаштувати це в конфігурації.


Короткий відповідь для співбесіди

За умовчанням git pull виконує git fetch, а потім git merge, зливаючи зміни з віддаленої гілки в поточну локальну без переписування історії.

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.