PassFront
  1. PassFront
  2. База знаний
  3. Слияние, rebase и конфликты

Как решить конфликт слияния веток в Git?

Слияние, rebase и конфликты

Конфликт слияния возникает, когда обе ветки изменили одно и то же место. Git не может решить сам и просит выбрать итоговый вариант.

Шаги

  1. Найти конфликтные файлы:
git status   # раздел «Unmerged paths»
  1. Открыть файл и разобрать маркеры:
<<<<<<< HEAD
const limit = 10;
=======
const limit = 20;
>>>>>>> feature

Верхняя часть — ваша ветка, нижняя — вливаемая. Нужно оставить правильный вариант (или объединить оба) и удалить маркеры.

  1. Отметить как решённое и завершить:
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 — Основные конфликты слияния

Другие вопросы раздела