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

Вирішення Конфліктів Злиття

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

Виправлення конфліктів

У попередньому розділі виник конфлікт злиття, тож зараз настав час його виправити. Спочатку відкрийте файл branch_learning.txt у редакторі Vim за допомогою наступної команди:

vim branch_learning.txt
Відкриття Vim

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

Ось як виглядає файл, відкритий у редакторі Vim:

Файл із конфліктами, відкритий у Vim

Тепер видно маркерів конфлікту, які вказують на конфліктні ділянки.
Ці маркери використовують стрілки та спеціальні символи для виділення відмінностей між гілками:

  • <<<<<<< HEAD: позначає початок змін з поточної гілки (master);
  • =======: розділяє зміни з поточної гілки (HEAD) і ті, що зливаються з іншої гілки;
  • >>>>>>> feature/new-feature: позначає кінець змін з гілки, що зливається.

Для вирішення конфлікту оберіть один із наступних варіантів:

  • Зберегти зміни з поточної гілки (master);
  • Зберегти зміни з гілки, що зливається (feature/new-feature);
  • Вручну відредагувати вміст.

Вручну відредагуйте файл, об'єднавши зміни з обох гілок за допомогою наступних кроків:

1. Вхід у режим редагування

Спочатку перейдіть у режим insert у Vim, натиснувши i. Це дозволяє редагувати текст.

2. Редагування конфліктної секції

Далі необхідно об'єднати рядки з обох гілок послідовно. Вміст файлу після цього має виглядати так:

New branch
New line from the master branch
New line from the feature branch
Вирішення конфлікту

3. Вихід з режиму редагування, збереження та вихід

Натисніть клавішу Escape, щоб вийти з режиму вставки. Потім введіть :wq і натисніть Enter для збереження змін і виходу з Vim:

Вихід з Vim

Фіксація файлу

Оскільки конфлікти вирішено, додайте файл branch_learning.txt до області індексації та перевірте статус:

git add branch_learning.txt
git status
Додавання вирішеного файлу

Файл було змінено та успішно додано до області підготовки. Тепер виконайте фіксацію:

git commit
Фіксація файлу

Знову відкривається текстовий редактор за замовчуванням (Vim у цьому випадку) з типовим повідомленням коміту щодо злиття:

Типове повідомлення коміту

Увійдіть у режим вставки у Vim, натиснувши i, після чого змініть повідомлення, додавши рядок Kept lines from both branches для опису способу вирішення конфліктів.

Ось повне повідомлення коміту:

Merge branch 'feature/new-feature'

Kept lines from both branches

Щоб вийти з режиму вставки, зберегти зміни та закрити Vim, натисніть клавішу Escape, потім введіть :wq і натисніть Enter.

Збереження зміненого повідомлення та вихід з Vim

Коміт виконано успішно, і конфлікт злиття вирішено.

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

Тепер розглянемо нашу історію комітів у вигляді графа (прапорець --graph) з одним рядком на кожен коміт (прапорець --oneline):

git log --graph --oneline
Граф історії комітів

Тут можна побачити останній коміт злиття разом із характерною структурою трьохстороннього злиття.

question mark

Який рекомендований спосіб вирішення конфлікту злиття у Git?

Виберіть правильну відповідь

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

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

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

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

Запитати АІ

expand

Запитати АІ

ChatGPT

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

Вирішення Конфліктів Злиття

Виправлення конфліктів

У попередньому розділі виник конфлікт злиття, тож зараз настав час його виправити. Спочатку відкрийте файл branch_learning.txt у редакторі Vim за допомогою наступної команди:

vim branch_learning.txt
Відкриття Vim

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

Ось як виглядає файл, відкритий у редакторі Vim:

Файл із конфліктами, відкритий у Vim

Тепер видно маркерів конфлікту, які вказують на конфліктні ділянки.
Ці маркери використовують стрілки та спеціальні символи для виділення відмінностей між гілками:

  • <<<<<<< HEAD: позначає початок змін з поточної гілки (master);
  • =======: розділяє зміни з поточної гілки (HEAD) і ті, що зливаються з іншої гілки;
  • >>>>>>> feature/new-feature: позначає кінець змін з гілки, що зливається.

Для вирішення конфлікту оберіть один із наступних варіантів:

  • Зберегти зміни з поточної гілки (master);
  • Зберегти зміни з гілки, що зливається (feature/new-feature);
  • Вручну відредагувати вміст.

Вручну відредагуйте файл, об'єднавши зміни з обох гілок за допомогою наступних кроків:

1. Вхід у режим редагування

Спочатку перейдіть у режим insert у Vim, натиснувши i. Це дозволяє редагувати текст.

2. Редагування конфліктної секції

Далі необхідно об'єднати рядки з обох гілок послідовно. Вміст файлу після цього має виглядати так:

New branch
New line from the master branch
New line from the feature branch
Вирішення конфлікту

3. Вихід з режиму редагування, збереження та вихід

Натисніть клавішу Escape, щоб вийти з режиму вставки. Потім введіть :wq і натисніть Enter для збереження змін і виходу з Vim:

Вихід з Vim

Фіксація файлу

Оскільки конфлікти вирішено, додайте файл branch_learning.txt до області індексації та перевірте статус:

git add branch_learning.txt
git status
Додавання вирішеного файлу

Файл було змінено та успішно додано до області підготовки. Тепер виконайте фіксацію:

git commit
Фіксація файлу

Знову відкривається текстовий редактор за замовчуванням (Vim у цьому випадку) з типовим повідомленням коміту щодо злиття:

Типове повідомлення коміту

Увійдіть у режим вставки у Vim, натиснувши i, після чого змініть повідомлення, додавши рядок Kept lines from both branches для опису способу вирішення конфліктів.

Ось повне повідомлення коміту:

Merge branch 'feature/new-feature'

Kept lines from both branches

Щоб вийти з режиму вставки, зберегти зміни та закрити Vim, натисніть клавішу Escape, потім введіть :wq і натисніть Enter.

Збереження зміненого повідомлення та вихід з Vim

Коміт виконано успішно, і конфлікт злиття вирішено.

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

Тепер розглянемо нашу історію комітів у вигляді графа (прапорець --graph) з одним рядком на кожен коміт (прапорець --oneline):

git log --graph --oneline
Граф історії комітів

Тут можна побачити останній коміт злиття разом із характерною структурою трьохстороннього злиття.

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

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

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

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