Слияние и конфликты: что происходит и как решать

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

Слияние выполняют командой git merge или через pull request на GitHub. Если Git может объединить изменения сам, он делает это автоматически. Если нет - просит человека принять решение.

Как выглядит конфликт

<<<<<<< HEAD
Текст из текущей ветки
=======
Текст из ветки, которую вливают
>>>>>>> feature/example

Эти маркеры нужно удалить, оставив итоговый правильный вариант. Иногда это одна из сторон, иногда комбинация обеих.

Алгоритм решения

  1. Запустите git status и посмотрите конфликтующие файлы.
  2. Откройте каждый файл и найдите маркеры конфликта.
  3. Выберите итоговый текст или код.
  4. Удалите маркеры <<<<<<<, =======, >>>>>>>.
  5. Проверьте проект.
  6. Добавьте исправленные файлы через git add.
  7. Завершите merge-коммит.
git status
git add README.md
git commit

Как уменьшить число конфликтов

Делайте небольшие ветки, чаще обновляйтесь от основной ветки, не смешивайте форматирование и логику в одном коммите, не правьте большие файлы без необходимости.

Конфликты учат важному навыку: читать чужие и свои изменения как единое решение, а не просто выбирать “мою” или “их” версию.

Источники