Задать вопрос
Vextor-ltd
@Vextor-ltd
Webdeveloper

Почему конфликт веток при git merge?

Работал в ветке для фичи, заамэнддил в ней коммит, затем перешёл в main, по дурости произвёл там изменения и засунул в стэйджинг.
После попытки залить фичу в мэйн Git ругается.
Произвёл в мэйн git reset --hard HEAD~1
Теперь ситуация следующая:

63a97a2378ad1138706821.png
Как пофиксить, а главное понять что вообще происходит?
  • Вопрос задан
  • 153 просмотра
Подписаться 1 Средний 1 комментарий
Решения вопроса 1
VladimirAndreev
@VladimirAndreev
php web dev
Ок, вот условно.
есть ветка 1. в ней такой файл:
{
"a": 10,
"b": 15
}


Вы делаете от ветки 1 ветку 2. файл приобретает такой вид:
{
"a": 10,
"b": 15,
"c": 20
}


В итоге, при мерже гит видит, что добавилась одна строка, оригинал не менялся.
И получается вот такое слияние:

{
"a": 10,
"b": 15,
"c": 20
}


В вашей же ситуации получается, что был
{
"a": 10,
"b": 15
}

Вы сделали
{
"a": 10,
"b": 15,
"c": 20
}


И одновременно с этим, другим коммитом, сделал
{
"a": 10,
"b": 15,
"c": 25
}


И гит эти два изменения видит, и думает, а свойтсво c теперь должно быть 20 или 25?
И спрашивает у Вас, что, собственно, дальше делать.

А дальше только резолвить конфликт мержа руками.
Фактически, сделать выбор между
{
"a": 10,
"b": 15,
"c": 25
}

и
{
"a": 10,
"b": 15,
"c": 20
}
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
delphinpro
@delphinpro
frontend developer
git не понимает, какой из двух кусков кода оставить.
в файле они отмечены

<<<<<<
кусок из одной ветки
=======
кусок из другой ветки
>>>>>>

одного из них может не быть.

Вам нужно вручную отредактировать эти файлы, оставив нужное.
потом застейджить их и закоммитить.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы