Конфликты слияния
Конфликты слияния (Merge Conflicts) в Git возникают, когда Git не может автоматически объединить изменения из двух веток, потому что изменения касаются одних и тех же строк в одном файле или затрагивают один и тот же участок кода.
Причины конфликтов
Две ветки изменили одни и те же строки в файле.
Одна ветка удалила файл, который другая ветка изменила.
Изменения пересекаются в логике или структуре кода, и Git не может решить, что оставить.
Как Git сигнализирует о конфликте
При попытке
git merge branch_nameилиgit cherry-pick commit_hashGit останавливает процесс и сообщает:
CONFLICT (content): Merge conflict in <filename>Файлы с конфликтами помечаются как неразрешённые.
Пример конфликта в файле
<<<<<<< HEAD
print("Hello from main branch")
=======
print("Hello from feature branch")
>>>>>>> featureHEAD— текущая ветка.feature— ветка, которую пытаются слить.Между
<<<<<<<и=======— код текущей ветки, между=======и>>>>>>>— код ветки, которую сливают.
Как разрешать конфликты
Открыть файл и выбрать, какой код оставить, или объединить вручную.
После исправления отметить конфликт как решённый:
git add <filename>Завершить слияние:
git commitили, если это был cherry-pick:
git cherry-pick --continueИтог: Конфликт слияния — это сигнал Git о том, что нужна ручная проверка и выбор правильного варианта изменений, чтобы сохранить целостность кода.
Last updated
Was this helpful?