Как я могу избавиться от значков конфликтов Eclipse Git после разрешения всех слияний?

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

В Eclipse 4.5.2 в представлении "Проект" я выбираю корень проекта и щелкаю правой кнопкой мыши -> Сравнить с веткой origin/master. Далее мы видим представление Team Synchronization. Многие файлы отмечены красным значком конфликта.conflict icon, но не должны.

Промежуточное представление Git, которое должно показывать конфликты, пусто. Я уже пробовал Merge; Фиксируем слияние (больше ничего не нужно коммитить). Я попробовал добавить в индекс из представления Git Staging; и даже перезаписать из представления Team Synchronization. Сравнение локальных и исходных файлов показывает, что они идентичны.

Параметр Git autocrlf равен true, так что проблема не в этом.

Это происходит неоднократно.

Почему я вижу этот значок конфликта? Как я могу избавиться от этого?

Постановка


person Joshua Fox    schedule 04.08.2016    source источник


Ответы (2)


Вы сделали pull? Или где вы только что сравнивали в Team Synchronization? По моему опыту, точка зрения Team Synchronization смущает большинство людей.

В общем случае его следует использовать «только для чтения». Не пытайтесь разрешить какие-либо конфликты здесь. По умолчанию вы сравниваете свою рабочую копию с удаленным репозиторием. Это означает, что у вас на самом деле нет конфликта в вашей рабочей копии. Когда вы «исправляете» их здесь, вы просто делаете локальную модификацию. Вы можете зафиксировать это, но это не разрешает никакого конфликта. Это делает фактический конфликт еще более трудным для разрешения.

Так что ничего не делайте в перспективе Team Synchronization. Просто выполните pull, чтобы эти конфликты были в вашей рабочей копии, а затем разрешите их. Конфликт слияния помечается как объединенный путем перемещения их в папку Staged Changes.

Если что-то сломалось и вы хотите попробовать еще раз, сделайте reset --hard при последнем коммите в локальном репозитории.

person Kai    schedule 12.08.2016
comment
Вы правы в том, что после того, как я пометил как объединенный, а затем зафиксировал, Team Synchronization по-прежнему показывает значок конфликта, а Git staging — нет. Итак, на данный момент казалось бы, что конфликт разрешен, но значок конфликта неправильный. - person Joshua Fox; 23.08.2016
comment
Нет, это правильно. По-прежнему существует конфликт между вашей локальной рабочей копией (теперь с изменениями, которые вы сделали и зафиксировали локально) и удаленным репозиторием. Вам нужно сделать pull, чтобы этот конфликт возник в вашем локальном репо и рабочей копии. После pull вы увидите это в представлении Git Staging и сможете это исправить. - person Kai; 23.08.2016
comment
Вам нужно сделать тягу. Спасибо. Тянуть, конечно, невозможно, пока я не совершу. После добавления объединенного кода в индекс из представления Git Staging я извлек, а затем зафиксировал код из представления ресурсов. Затем из представления ресурсов я сравнил с удаленной веткой. Теперь этих значков конфликтов больше нет. - person Joshua Fox; 25.08.2016

После правильного редактирования конфликтного ресурса. Щелкните правой кнопкой мыши конфликтующий ресурс и выберите *Пометить как объединенный". посмотрите этот скриншот.

person Chandrayya G K    schedule 05.08.2016
comment
Спасибо, но «Отметить как объединенное» — это одна из вещей, которые я пробовал, и это не устранило значок. - person Joshua Fox; 06.08.2016
comment
Я сделал Отметить как объединенный, затем Зафиксировать. Теперь Team Synchronization (Compare To) по-прежнему показывает значок конфликта, а Git staging — нет. - person Joshua Fox; 23.08.2016
comment
Чтобы очистить эти значки конфликта. Повторно запустите Синхронизацию еще раз, тогда новые результаты удалят эти старые значки. - person Chandrayya G K; 24.08.2016