Потерянный коммит при слиянии Git. Нужна помощь в объяснении

#git #git-merge

#git #git-merge

Вопрос:

Я не могу понять, почему git не объединил определенный коммит, который я сделал. Рассмотрим две ветви на изображении ниже

введите описание изображения здесь

Интересующий коммит находится в красной строке, 014506c. В этом коммите некоторые свойства конфигурации изменены, как показано ниже.

введите описание изображения здесь

Обратите внимание на единственный файл, который был изменен. Этот файл не изменяется в 33da9d7, но когда слияние происходит в 746e986, изменений там нет. Как вы можете видеть на скриншоте ниже, файл отсутствует в списке изменений . . .

введите описание изображения здесь

Моей первоначальной реакцией было то, что, возможно, в 834ff6a произошло изменение, которое привело к конфликту слияния, который был разрешен неправильно. Но в 834ff6a также нет никаких изменений. Смотрите ниже введите описание изображения здесь

Я понятия не имею, почему это могло произойти! Любое понимание этого было бы оценено.

Комментарии:

1. Почему коммит 834ff6a должен содержать изменения, если изменения были сделаны в более позднем коммите 014506c ? Почему на вас ссылаются 834ff6a ? Скорее всего, у commit 6eb292a были конфликты, которые были разрешены неправильно? Потому что это слияние произошло после внесения изменений…

2. Я ссылаюсь на 834ff6a, поскольку это единственный коммит после создания ветки, в котором были какие-либо изменения (которые могли привести к конфликту слияния), и, как видно, 834ff6a не имеет изменений в этом файле. Итак, по сути, синяя ветвь не вносит изменений в рассматриваемый файл, и конфликтов слияния быть не должно. По крайней мере, это то, что я понимаю.

3. Я полагаю, вы уверены, что файл имеет неверное содержимое после слияния, и дело не только в том, что 014506c отменил некоторые изменения, сделанные ранее в этой ветке? Сам вопрос, похоже, на данный момент этого не показывает.

4. Хорошо, теперь я вижу, я думаю, вы правы…

5. Если вы это сделаете git diff 33da9d7 6eb292a , то есть до и после слияния, будут ли изменения теми, которые вы видите в 834ff6a плюс те, которые в application-master.properties ? Или там есть что-нибудь еще? При нормальном поведении слияния это различие и git diff ec0c80e 834ff6a должно давать почти одинаковые результаты. Если они этого не делают, то при вашем слиянии определенно произошло что-то странное, но я не вижу здесь достаточно информации, чтобы сказать, что именно. Если вы попробуете объединить еще раз, получите ли вы те же результаты?