Злиття гілок
Розуміння злиття гілок
У Git злиття — це процес інтеграції змін з однієї гілки в іншу. Найпоширеніший випадок використання — злиття feature-гілок у основну гілку (наприклад, main
або master
). Це гарантує, що останні функції та виправлення помилок включені до основної кодової бази.
Базовий робочий процес злиття
Спочатку розглянемо два останні коміти. Зверніть увагу, що наразі ми перебуваємо на гілці feature/new-feature
.
Як бачите, наша гілка master
відстає на один коміт, однак перед злиттям змін потрібно перемкнутися на гілку, куди ви хочете інтегрувати зміни. Перемикаємося на гілку master
та виводимо два останні коміти цієї гілки:
Гілка master
дійсно відстає на один коміт від гілки feature, тож об'єднаємо їх. Щоб ініціювати процес злиття, слід використати команду git merge
і вказати гілку, яку потрібно об'єднати з поточною гілкою. Наприклад, щоб об'єднати гілку з новою функцією feature/new-feature
у гілку master
, необхідно виконати таку команду:
Повідомлення, яке з'являється після виконання команди, містить наступне: Fast-forward
, що вказує на виконання злиття типу fast-forward.
Два типи злиття буде розглянуто далі у цьому розділі, однак перед цим розглянемо два останні коміти:
Ми все ще перебуваємо на гілці master
, однак ця гілка тепер синхронізована з нашою гілкою feature, і обидві гілки вказують на один і той самий коміт.
HEAD все ще вказує на гілку master
, оскільки під час злиття ми перебували саме на цій гілці.
Типи злиття
Фактично, у Git існує два типи операцій злиття:
- fast-forward злиття;
- трьохстороннє злиття.
Fast-forward злиття
Те, що ми виконали, є прикладом fast-forward злиття, як зазначено у повідомленні. Цей тип злиття виконується, якщо всі коміти гілки, на якій ми зараз перебуваємо (активна гілка), також входять до гілки, яку ми зливаємо, тобто історія комітів цих гілок не розходиться. Розглянемо наступну ілюстрацію для пояснення цього:
За цього типу злиття покажчик поточної гілки просто оновлюється до останнього коміту.
Тристороннє злиття
Однак, якщо історії гілок розійшлися, тобто після певного спільного коміту в кожній гілці окремо були створені нові коміти, виконується тристороннє злиття.
Термін "тристороннє" стосується трьох версій, які беруть участь у злитті:
- версія найсвіжішого спільного предка (коміт);
- версія останнього коміту в поточній гілці (HEAD);
- версія останнього коміту у гілці, що зливається.
Розглянемо наступну ілюстрацію такого злиття:
Ось як працює тристороннє злиття:
- Git визначає зміни, внесені в кожній з гілок після найсвіжішого спільного предка;
- Якщо кожна гілка має зміни в різних файлах або в різних частинах одного й того ж файлу, Git автоматично об'єднує зміни у підсумковому коміті;
- В іншому випадку виникає конфлікт злиття.
Дякуємо за ваш відгук!
Запитати АІ
Запитати АІ
Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат
Awesome!
Completion rate improved to 3.57
Злиття гілок
Свайпніть щоб показати меню
Розуміння злиття гілок
У Git злиття — це процес інтеграції змін з однієї гілки в іншу. Найпоширеніший випадок використання — злиття feature-гілок у основну гілку (наприклад, main
або master
). Це гарантує, що останні функції та виправлення помилок включені до основної кодової бази.
Базовий робочий процес злиття
Спочатку розглянемо два останні коміти. Зверніть увагу, що наразі ми перебуваємо на гілці feature/new-feature
.
Як бачите, наша гілка master
відстає на один коміт, однак перед злиттям змін потрібно перемкнутися на гілку, куди ви хочете інтегрувати зміни. Перемикаємося на гілку master
та виводимо два останні коміти цієї гілки:
Гілка master
дійсно відстає на один коміт від гілки feature, тож об'єднаємо їх. Щоб ініціювати процес злиття, слід використати команду git merge
і вказати гілку, яку потрібно об'єднати з поточною гілкою. Наприклад, щоб об'єднати гілку з новою функцією feature/new-feature
у гілку master
, необхідно виконати таку команду:
Повідомлення, яке з'являється після виконання команди, містить наступне: Fast-forward
, що вказує на виконання злиття типу fast-forward.
Два типи злиття буде розглянуто далі у цьому розділі, однак перед цим розглянемо два останні коміти:
Ми все ще перебуваємо на гілці master
, однак ця гілка тепер синхронізована з нашою гілкою feature, і обидві гілки вказують на один і той самий коміт.
HEAD все ще вказує на гілку master
, оскільки під час злиття ми перебували саме на цій гілці.
Типи злиття
Фактично, у Git існує два типи операцій злиття:
- fast-forward злиття;
- трьохстороннє злиття.
Fast-forward злиття
Те, що ми виконали, є прикладом fast-forward злиття, як зазначено у повідомленні. Цей тип злиття виконується, якщо всі коміти гілки, на якій ми зараз перебуваємо (активна гілка), також входять до гілки, яку ми зливаємо, тобто історія комітів цих гілок не розходиться. Розглянемо наступну ілюстрацію для пояснення цього:
За цього типу злиття покажчик поточної гілки просто оновлюється до останнього коміту.
Тристороннє злиття
Однак, якщо історії гілок розійшлися, тобто після певного спільного коміту в кожній гілці окремо були створені нові коміти, виконується тристороннє злиття.
Термін "тристороннє" стосується трьох версій, які беруть участь у злитті:
- версія найсвіжішого спільного предка (коміт);
- версія останнього коміту в поточній гілці (HEAD);
- версія останнього коміту у гілці, що зливається.
Розглянемо наступну ілюстрацію такого злиття:
Ось як працює тристороннє злиття:
- Git визначає зміни, внесені в кожній з гілок після найсвіжішого спільного предка;
- Якщо кожна гілка має зміни в різних файлах або в різних частинах одного й того ж файлу, Git автоматично об'єднує зміни у підсумковому коміті;
- В іншому випадку виникає конфлікт злиття.
Дякуємо за ваш відгук!