Ответ
При слиянии веток в Git конфликты возникают, когда изменения в одних и тех же строках были сделаны в разных ветках. Вот как я их разрешаю:
-
Идентификация конфликта: Git помечает конфликтующие участки в файлах специальными маркерами:
<<<<<<< HEAD Код из текущей ветки (например, main) ======= Код из сливаемой ветки (например, feature-branch) >>>>>>> feature-branch -
Анализ и правка: Я открываю каждый конфликтный файл в редакторе, анализирую оба изменения и вручную редактирую итоговый код, удаляя маркеры Git. Часто это не просто выбор одного варианта, а их объединение.
-
Завершение слияния: После правки всех файлов я добавляю их и создаю коммит слияния.
git add <имя_файла> # или git add . git commit -m "Merge branch 'feature-branch' with conflict resolution"
Полезные инструменты и команды:
git status— показывает файлы с конфликтами.git diff— помогает детально увидеть различия.git mergetool— запускает визуальный инструмент для слияния (например,meldилиvimdiff), что ускоряет работу со сложными конфликтами.git checkout --ours/--theirs <файл>— позволяет быстро принять одну из версий целиком, если это уместно.
Ключевая практика — всегда запускать тесты после разрешения конфликта, чтобы убедиться, что объединённый код работает корректно.