Конфлікти під час злиття гілок
Виникнення та вирішення конфліктів під час об'єднання гілок за допомогою git merge.
Конфлікти під час злиття гілок у Git
Конфлікт виникає тоді, коли в різних гілках були змінені одні й ті самі рядки одного файлу. У такій ситуації Git не може автоматично визначити, яку версію потрібно залишити.
Після виконання git merge Git повідомить про конфлікт і запропонує вручну виправити файл.
Приклад виникнення конфлікту
git merge testAuto-merging file.txt
CONFLICT (content): Merge conflict in file.txt
Automatic merge failed; fix conflicts and then commit the result.Позначки конфлікту
Git додає до файлу спеціальні маркери, які показують обидві версії зміненого коду.
<<<<<<< HEAD
Зміни поточної гілки
=======
Зміни гілки test
>>>>>>> testВерхня частина містить зміни поточної гілки (HEAD), нижня — зміни гілки, яку ви намагаєтесь об'єднати.
Вирішення конфлікту
Відредагуйте файл вручну: залиште правильний варіант коду та видаліть усі службові позначки Git (<<<<<<<, =======, >>>>>>>).
git add file.txt
git commit -m "Resolve merge conflict"main
│
Змінено file.txt
│
├──────────────┐
│ │
▼ ▼
test Змінено той самий файл
│ │
└──── git merge ────►
CONFLICT
│
▼
Виправити файл вручну
│
▼
git add
git commitПісля виправлення конфлікту потрібно виконати git add та створити коміт. Лише після цього злиття буде завершено.
- Створіть дві гілки з однаковим файлом.
- Змініть один і той самий рядок у кожній гілці.
- Створіть коміт у кожній гілці.
- Виконайте git merge та отримайте конфлікт.
- Відредагуйте файл, залишивши правильний варіант коду.
- Видаліть службові позначки конфлікту.
- Виконайте git add та створіть коміт для завершення злиття.
💡 Показати підказку
Не залишайте у файлі рядки <<<<<<<, ======= або >>>>>>>. Вони використовуються лише для позначення конфлікту й повинні бути видалені.
✅ Показати відповідь
Відповідь: Отримати конфлікт: git merge test Відкрити файл та вручну виправити конфлікт. Після цього: git add file.txt git commit -m "Resolve merge conflict" Після коміту злиття буде успішно завершено.