Що відбувається за умовчанням при git pull?
За умовчанням git pull виконує дві операції поспіль:
git fetch + git merge
Тобто Git:
- забирає зміни з віддаленого репозиторію
- зливає їх у поточну локальну гілку через
merge
Розберемо по кроках
Коли ти виконуєш:
bash
git pullGit робить наступне:
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
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.