Как разрешить конфликт при слиянии в Git?
Конфликт возникает, когда две ветки изменяют одни и те же строки файла и Git не может автоматически объединить изменения. Вот пошаговый процесс разрешения.
Сначала выполните git status, чтобы увидеть conflicted files. Git помечает конфликты в файлах маркерами: <<<<<<< HEAD (ваши изменения), ======= (разделитель) и >>>>>>> branch-name (изменения из другой ветки).
Откройте файл в редакторе и найдите маркеры конфликтов. Вам нужно выбрать, какие изменения оставить: ваши, чужие, или объединить оба. Удалите маркеры <<<<<<<, ======= и >>>>>>>, оставив только нужный код. Сохраните файл.
После разрешения всех конфликтов в файле выполните git add <файл> для каждого разрешённого файла. Когда все конфликты разрешены, выполните git commit — Git создаст merge-коммит автоматически с сообщением по умолчанию.
Для сложных конфликтов используйте инструменты визуального слияния: git mergetool запустит настроенный инструмент (VS Code, Meld, KDiff3). В VS Code можно разрешать конфликты прямо в редакторе — кнопки Accept Current, Accept Incoming, Accept Both.
Если вы хотите отменить слияние и вернуться к состоянию до него, выполните git merge --abort. Это полезно, когда конфликтов слишком много и проще начать заново.
Совет: чтобы уменьшить количество конфликтов, чаще делайте rebase или merge из основной ветки в свою feature-ветку, а также делайте небольшие коммиты, затрагивающие меньше файлов.