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

Зміст курсу

Основи Git

Основи Git

2. Більш Розширена Взаємодія
3. Скасування Змін
4. Робота з Гілками в Git

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

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

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

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

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

Тепер ми бачимо маркери, що вказують на конфліктуючі розділи. Ці маркери представлені стрілками і спеціальними символами для виділення конфліктуючих змін з різних гілок. Конфліктні маркери є наступними:

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

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

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

1. Увійти у Режим Редагування

По-перше, ми повинні увійти у режим вставки (редагування) у Vim, натиснувши клавішу i. Це дозволить вам редагувати текст.

2. Редагувати Конфліктну Секцію

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

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

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

Комміт Файлу

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

Файл було змінено і додано до стейдж зони. Тепер ми можемо перейти до його комміту:

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

Перейдемо у режим вставки у Vim за допомогою клавіші i та модифікуємо це повідомлення, додавши до нього наступний рядок: Kept lines from both branches, щоб вказати спосіб вирішення конфліктів. Ось повне повідомлення комміту:

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

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

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

Тут ми бачимо наш останній комміт злиття і характерну форму three-way злиття.

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

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

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

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