Конфликт слияния автоматически исчезает после вызова mergetool

#git

#git

Вопрос:

В репозитории кода, с которым я работаю, когда я выполняю pull, Git предупреждает о конфликте слияния и выдает сообщение об ошибке, в котором говорится:

 Automatic merge failed; fix conflicts and then commit the result.
  

Итак, затем я запускаю ‘git mergetool’. Он выдает список кандидатов на инструмент слияния, а затем сообщение:

 Merging fileA
Normal merge conflict for fileA
{local}: modified file
{remote}: modified file
Hit return to start merge resoution tool (kdiff3):
  

Когда я нажимаю return, он немедленно возвращается обратно в командную строку. Если я сейчас выполню git citool, я увижу, что файл был объединен правильно. Похоже, это происходит только в тех случаях, когда Git мог бы легко автоматически объединить файлы, т. Е. Были изменены смежные строки, но одни и те же строки не были затронуты в 2 репозиториях. Итак, мой вопрос в том, почему я вообще получаю сообщение «сбой автоматического слияния»?

Так ли это, что нажатие ‘return’ активирует kdiff3, который затем автоматически разрешает конфликт без моего вмешательства? Если да, есть ли способ настроить Git таким образом, чтобы я даже не получал первое сообщение «Сбой автоматического слияния»?

Я думал, что kdiff3 просто выводит графический интерфейс пользователя для слияния вручную и не имеет никаких возможностей автоматического разрешения.

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

1. Можете ли вы показать нам конфликтующую область файлов (предок / ваш / их), о которых идет речь?

Ответ №1:

 Is it the case that hitting 'return' activates kdiff3 which then resolves the conflict automatically without my intervention?
  

Да. kdiff3 пытается разрешить конфликты автоматически. Git не настолько умен. Git не предназначен для разрешения конфликтов. Для этого он полагается на стороннее приложение.

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

1. Итак, мой вопрос в том, почему я вообще получаю сообщение «сбой автоматического слияния»?