Ответ 1
VSCode должен четко отображать маркеры конфликтов:
Убедитесь, что вы не видите ни одного из этих маркеров в файле, который вы добавляете (постановка)
Итак, у меня есть ветка отрасли и темы. Я использую по умолчанию терминал в окне 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?
VSCode должен четко отображать маркеры конфликтов:
Убедитесь, что вы не видите ни одного из этих маркеров в файле, который вы добавляете (постановка)
В VSCode, когда у вас есть конфликты в нескольких файлах, они отображаются на панели git, и вы можете открывать файлы по одному и разрешать их.
Когда вы разрешаете конфликты в файле, вы должны сохранить файл, а затем нажать кнопку +
этого файла (показано на рисунке ниже).
Это приведет к постановке файла. Если вы нажмете эту кнопку и в этом файле возникнут неразрешенные конфликты, вы получите следующее сообщение:
Вы уверены, что хотите устроить конфликты слияния?
Теперь, если вы разрешите конфликты всех файлов и нажмете кнопку " +
над всеми файлами (чтобы поместить все файлы в конфликт) (показано на рисунке ниже), он все равно выдаст вам то же сообщение (хотя вы уже разрешены все конфликты).
Поэтому я рекомендую, чтобы вы нажимали +
каждого файла по отдельности, чтобы быть уверенным, что вы разрешили все конфликты до его установки.
Я считаю, что эта ошибка исправлена в последних версиях VSCode.
В моем случае я понял, что у меня отключено автосохранение. Я знаю, это слишком глупо. Но стоит проверить.
Это нормальное поведение. Обычно мы получим конфликты слияния, когда у нас будут изменения в одной строке исходных и целевых файлов слияния.
В вашем случае вы разрешили конфликты в своем файле (я имею в виду против кода), но он не обновляется до git. Поэтому после добавления Accept Incoming
или Accept Current
вы должны выполнить следующие шаги:
<conflicts resolved files>
merge conflict resolved message
"