Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Вивчайте Злиття гілок | Робота з Гілками в Git
Основи Git

bookЗлиття гілок

Розуміння злиття гілок

У Git злиття — це процес інтеграції змін з однієї гілки в іншу. Найпоширеніший випадок використання — злиття feature-гілок у основну гілку (наприклад, main або master). Це гарантує, що останні функції та виправлення помилок включені до основної кодової бази.

Базовий робочий процес злиття

Спочатку розглянемо два останні коміти. Зверніть увагу, що наразі ми перебуваємо на гілці feature/new-feature.

Як бачите, наша гілка master відстає на один коміт, однак перед злиттям змін потрібно перемкнутися на гілку, куди ви хочете інтегрувати зміни. Перемикаємося на гілку master та виводимо два останні коміти цієї гілки:

Гілка master дійсно відстає на один коміт від гілки feature, тож об'єднаємо їх. Щоб ініціювати процес злиття, слід використати команду git merge і вказати гілку, яку потрібно об'єднати з поточною гілкою. Наприклад, щоб об'єднати гілку з новою функцією feature/new-feature у гілку master, необхідно виконати таку команду:

Note
Примітка

Повідомлення, яке з'являється після виконання команди, містить наступне: Fast-forward, що вказує на виконання злиття типу fast-forward.

Два типи злиття буде розглянуто далі у цьому розділі, однак перед цим розглянемо два останні коміти:

Ми все ще перебуваємо на гілці master, однак ця гілка тепер синхронізована з нашою гілкою feature, і обидві гілки вказують на один і той самий коміт.

Note
Примітка

HEAD все ще вказує на гілку master, оскільки під час злиття ми перебували саме на цій гілці.

Типи злиття

Фактично, у Git існує два типи операцій злиття:

  • fast-forward злиття;
  • трьохстороннє злиття.

Fast-forward злиття

Те, що ми виконали, є прикладом fast-forward злиття, як зазначено у повідомленні. Цей тип злиття виконується, якщо всі коміти гілки, на якій ми зараз перебуваємо (активна гілка), також входять до гілки, яку ми зливаємо, тобто історія комітів цих гілок не розходиться. Розглянемо наступну ілюстрацію для пояснення цього:

За цього типу злиття покажчик поточної гілки просто оновлюється до останнього коміту.

Тристороннє злиття

Однак, якщо історії гілок розійшлися, тобто після певного спільного коміту в кожній гілці окремо були створені нові коміти, виконується тристороннє злиття.

Термін "тристороннє" стосується трьох версій, які беруть участь у злитті:

  • версія найсвіжішого спільного предка (коміт);
  • версія останнього коміту в поточній гілці (HEAD);
  • версія останнього коміту у гілці, що зливається.

Розглянемо наступну ілюстрацію такого злиття:

Ось як працює тристороннє злиття:

  1. Git визначає зміни, внесені в кожній з гілок після найсвіжішого спільного предка;
  2. Якщо кожна гілка має зміни в різних файлах або в різних частинах одного й того ж файлу, Git автоматично об'єднує зміни у підсумковому коміті;
  3. В іншому випадку виникає конфлікт злиття.
question mark

Виберіть усі типи злиття.

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4

Запитати АІ

expand

Запитати АІ

ChatGPT

Запитайте про що завгодно або спробуйте одне із запропонованих запитань, щоб почати наш чат

Awesome!

Completion rate improved to 3.57

bookЗлиття гілок

Свайпніть щоб показати меню

Розуміння злиття гілок

У Git злиття — це процес інтеграції змін з однієї гілки в іншу. Найпоширеніший випадок використання — злиття feature-гілок у основну гілку (наприклад, main або master). Це гарантує, що останні функції та виправлення помилок включені до основної кодової бази.

Базовий робочий процес злиття

Спочатку розглянемо два останні коміти. Зверніть увагу, що наразі ми перебуваємо на гілці feature/new-feature.

Як бачите, наша гілка master відстає на один коміт, однак перед злиттям змін потрібно перемкнутися на гілку, куди ви хочете інтегрувати зміни. Перемикаємося на гілку master та виводимо два останні коміти цієї гілки:

Гілка master дійсно відстає на один коміт від гілки feature, тож об'єднаємо їх. Щоб ініціювати процес злиття, слід використати команду git merge і вказати гілку, яку потрібно об'єднати з поточною гілкою. Наприклад, щоб об'єднати гілку з новою функцією feature/new-feature у гілку master, необхідно виконати таку команду:

Note
Примітка

Повідомлення, яке з'являється після виконання команди, містить наступне: Fast-forward, що вказує на виконання злиття типу fast-forward.

Два типи злиття буде розглянуто далі у цьому розділі, однак перед цим розглянемо два останні коміти:

Ми все ще перебуваємо на гілці master, однак ця гілка тепер синхронізована з нашою гілкою feature, і обидві гілки вказують на один і той самий коміт.

Note
Примітка

HEAD все ще вказує на гілку master, оскільки під час злиття ми перебували саме на цій гілці.

Типи злиття

Фактично, у Git існує два типи операцій злиття:

  • fast-forward злиття;
  • трьохстороннє злиття.

Fast-forward злиття

Те, що ми виконали, є прикладом fast-forward злиття, як зазначено у повідомленні. Цей тип злиття виконується, якщо всі коміти гілки, на якій ми зараз перебуваємо (активна гілка), також входять до гілки, яку ми зливаємо, тобто історія комітів цих гілок не розходиться. Розглянемо наступну ілюстрацію для пояснення цього:

За цього типу злиття покажчик поточної гілки просто оновлюється до останнього коміту.

Тристороннє злиття

Однак, якщо історії гілок розійшлися, тобто після певного спільного коміту в кожній гілці окремо були створені нові коміти, виконується тристороннє злиття.

Термін "тристороннє" стосується трьох версій, які беруть участь у злитті:

  • версія найсвіжішого спільного предка (коміт);
  • версія останнього коміту в поточній гілці (HEAD);
  • версія останнього коміту у гілці, що зливається.

Розглянемо наступну ілюстрацію такого злиття:

Ось як працює тристороннє злиття:

  1. Git визначає зміни, внесені в кожній з гілок після найсвіжішого спільного предка;
  2. Якщо кожна гілка має зміни в різних файлах або в різних частинах одного й того ж файлу, Git автоматично об'єднує зміни у підсумковому коміті;
  3. В іншому випадку виникає конфлікт злиття.
question mark

Виберіть усі типи злиття.

Select the correct answer

Все було зрозуміло?

Як ми можемо покращити це?

Дякуємо за ваш відгук!

Секція 4. Розділ 4
some-alt