Слияние и конфликты: что происходит и как решать
Конфликт в Git возникает, когда две ветки изменили один и тот же участок файла, и Git не может автоматически выбрать правильный вариант.
Краткий ответ
Конфликт в Git возникает, когда две ветки изменили один и тот же участок файла, и Git не может автоматически выбрать правильный вариант. Конфликт - не катастрофа, а обычная ситуация совместной работы.
Конфликт в 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
Как уменьшить число конфликтов
Делайте небольшие ветки, чаще обновляйтесь от основной ветки, не смешивайте форматирование и логику в одном коммите, не правьте большие файлы без необходимости.
Конфликты учат важному навыку: читать чужие и свои изменения как единое решение, а не просто выбирать “мою” или “их” версию.
Что важно запомнить
- Конфликт в Git возникает, когда две ветки изменили один и тот же участок файла, и Git не может автоматически выбрать правильный вариант.
- Конфликт - не катастрофа, а обычная ситуация совместной работы.
- Слияние выполняют командой git merge или через pull request на GitHub.
- Если Git может объединить изменения сам, он делает это автоматически.
https://yadro-code.ru/lessons/without-university/command-line-git-basics/command-line-git-11