Конфликт на главной ветке в Git
При общей ветке конфликт часто
всплывает прямо на main,
когда pull подтягивает чужой коммит
и Git не может автоматически
сложить две правки одного места.
Маркеры в файле вы уже видели;
здесь важен контекст схемы.
Пока слияние не завершено,
главная ветка занята «полуфабрикатом»:
в индексе и файлах висит незаконченный merge.
Коммитить новую работу как обычно
неудобно, push отправит не то состояние.
Команда на время блокирует общую линию,
пока кто-то не доведет pull до конца.
В схеме с отдельными ветками
конфликт иногда решают до слияния
в главную. При общей ветке
то же самое происходит на main,
и от этого страдают все,
кто опирается на эту ветку сегодня.
После неудачного pull откроем конфликтующий файл, оставим нужный текст, проиндексируем и завершим слияние:
git add shop.txt
git commit
Затем отправим уже согласованную
main на сервер:
git push
В двух клонах измените одну
и ту же строку в shop.txt
на main, закоммитьте
и отправьте push из первого клона.
Во втором выполните pull,
разрешите конфликт, завершите
слияние и отправьте push.
На удаленной main
должна быть согласованная версия файла.