Разрешенный конфликт git слияния в VS Code, но все еще говорит, что нерешенные

Итак, у меня есть ветка отрасли и темы. Я использую по умолчанию терминал в окне VS Code. В то время как в ветке темы, я сделал git merge develop так как я только что получил последние разработки. Теперь есть простой конфликт слияния в одном файле. В VS Code я разрешил конфликт. На кодовой странице больше нет конфликтов, которые вы можете Accept Incoming или " Accept Current, но когда я пытаюсь сгенерировать файл на панели "Управление источником" слева, отображается всплывающее сообщение с предупреждением. Are you sure you want to stage with merge conflicts?

Это нормально? похоже, что VS Code не думает, что я разрешил конфликт даже из того, что я только что сделал, и больше нет конфликта в файле. Или что-то мне не хватает Git/VS Code-wise?

Ответы

Ответ 1

VSCode должен четко отображать маркеры конфликтов:

https://code.visualstudio.com/images/versioncontrol_merge.png

Убедитесь, что вы не видите ни одного из этих маркеров в файле, который вы добавляете (постановка)

Ответ 2

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

Когда вы разрешаете конфликты в файле, вы должны сохранить файл, а затем нажать кнопку + этого файла (показано на рисунке ниже).

Stage resolved file

Это приведет к постановке файла. Если вы нажмете эту кнопку и в этом файле возникнут неразрешенные конфликты, вы получите следующее сообщение:

Вы уверены, что хотите устроить конфликты слияния?

Теперь, если вы разрешите конфликты всех файлов и нажмете кнопку " + над всеми файлами (чтобы поместить все файлы в конфликт) (показано на рисунке ниже), он все равно выдаст вам то же сообщение (хотя вы уже разрешены все конфликты).

stage all files

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

Заметка

Я считаю, что эта ошибка исправлена в последних версиях VSCode.

Ответ 3

В моем случае я понял, что у меня отключено автосохранение. Я знаю, это слишком глупо. Но стоит проверить.

Ответ 4

Это нормальное поведение. Обычно мы получим конфликты слияния, когда у нас будут изменения в одной строке исходных и целевых файлов слияния.

В вашем случае вы разрешили конфликты в своем файле (я имею в виду против кода), но он не обновляется до git. Поэтому после добавления Accept Incoming или Accept Current вы должны выполнить следующие шаги:

  1. git add <conflicts resolved files>
  2. git commit -m "merge conflict resolved message"
  3. мерзавец