Как решить конфликт слияния веток в Git?
Слияние, rebase и конфликты
Конфликт слияния возникает, когда обе ветки изменили одно и то же место. Git не может решить сам и просит выбрать итоговый вариант.
Шаги
- Найти конфликтные файлы:
git status # раздел «Unmerged paths»- Открыть файл и разобрать маркеры:
<<<<<<< HEAD
const limit = 10;
=======
const limit = 20;
>>>>>>> featureВерхняя часть — ваша ветка, нижняя — вливаемая. Нужно оставить правильный вариант (или объединить оба) и удалить маркеры.
- Отметить как решённое и завершить:
git add src/config.js
git commit # при merge
git rebase --continue # при rebaseПолезное
- редакторы (VS Code, WebStorm) показывают конфликты с кнопками «принять своё / их / оба»;
git merge --abortилиgit rebase --abort— вернуться в исходное состояние;- после решения обязательно запустить тесты: код без маркеров ещё не значит рабочий код.
Коротко для собеседования
git status → исправить файлы, убрав маркеры и выбрав итоговый код → git add → завершить merge или rebase; при сомнениях — --abort.
Подробнее: Pro Git — Основные конфликты слияния