Що таке git merge?
git merge - це команда, яка об'єднує зміни з однієї гілки в іншу, зберігаючи історію обох гілок.
Простими словами: «Візьми все, що було зроблено в іншій гілці, і додай це до поточної».
Навіщо потрібен git merge
У Git зазвичай працюють з гілками:
main/master- основна гілкаfeature/*- гілки для нових фічbugfix/*- гілки для виправлень
Ти працюєш в окремій гілці, а коли все готово - зливаєш її назад в основну. Саме для цього і потрібен git merge.
Як працює git merge
Приклад:
- Ти перебуваєш у гілці
main - Хочеш влити зміни з гілки
feature-login
git checkout main
git merge feature-loginРезультат:
- Усі коміти з
feature-loginз'являються вmain - Історія гілок зберігається
Що відбувається «під капотом»
Git:
- Знаходить спільний коміт-предок двох гілок
- Порівнює зміни
- Об'єднує їх
- Створює merge-коміт (якщо потрібно)
Види merge
1. Fast-forward merge (швидкий merge)
Якщо в main не було нових комітів, Git просто пересуває вказівник:
A---B---C (main)
\
D---E (feature)Після merge:
A---B---C---D---E (main)
Без зайвих комітів Чиста історія
2. Merge commit (звичайний merge)
Якщо обидві гілки розвивалися паралельно:
A---B---C---F (main)
\
D---E (feature)Git створює окремий merge-коміт:
A---B---C---F---M (main)
\ /
D---E---Видно, що була окрема гілка Історія максимально чесна
Конфлікти при merge
Якщо зміни зачіпають одні й ті самі рядки, Git не знає, що вибрати.
Тоді:
- Git повідомляє про конфлікт
- Ти вручну обираєш правильний варіант
- Після цього робиш
git commit
Конфлікти - це нормально, на співбесідах це підкреслюють.
Плюси git merge
Простий у використанні Безпечний Не переписує історію Добре підходить для командної роботи
Мінуси
Історія може стати «шумною» (багато merge-комітів)
Коротко для співбесіди
git merge- це команда для об'єднання гілок, яка зберігає історію і за потреби створює merge-коміт. Вона не переписує коміти і вважається безпечною для спільної роботи.
Коротка відповідь
Для співбесідиКоротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.