Код Visual Studio як вирішити конфлікти злиття з git?


107

Я спробував об’єднати свою гілку з іншою гілкою, і стався конфлікт об’єднання. У Visual Studio Code (версія 1.2.1) я вирішив усі проблеми, однак, коли я намагаюся зафіксувати це повідомлення, це продовжує надавати мені таке повідомлення:

Спочатку слід вирішити незлиті зміни, перш ніж вносити зміни.

Я спробував погуглити, але не можу зрозуміти, чому це не дозволяє мені вносити зміни, усі конфлікти зникли.


1
Хоча те, що ви сказали правильно, не вирішує проблему у питанні. Я прямо заявив, що вже вирішив усі конфлікти злиття у питанні.
annedroiid

Відповіді:


111

За допомогою VSCode ви можете легко знайти конфлікти злиття з наступним інтерфейсом користувача. введіть тут опис зображення

(якщо у вас немає верхньої панелі, встановіть "editor.codeLens": trueу налаштуваннях користувача)

Це вказує на поточну зміну, яку ви маєте, та вхідні зміни із сервера. Це полегшує вирішення конфліктів - просто натисніть кнопки вище<<<< HEAD .

Якщо у вас є кілька змін і ви хочете застосувати всі їх одночасно - відкрийте палітру команд (Перегляд -> Палітра команд) і починайте вводити злиття - з’явиться кілька варіантів, включаючи Merge Conflict: Accept Incomingтощо.


1
ти отримав останнє оновлення! я покажу у кожному рядку
Sajeetharan


1
Як отримати ці злиття, вирішити конфліктні варіанти в коді Visual Studio.
user630209

1
як увімкнути це, будь-який ярлик? Я не бачу цього варіанту у своєму конфліктному файлі.
user630209

1
@RyeGuy Ці параметри відображаються через CodeLens, тож у вас є CodeLens, який слід увімкнути (див. Code.visualstudio.com/Docs/editor/… ).
Geri Borbás

73

Після спроб і помилок я виявив, що вам потрібно інсталювати файл, що мав конфлікт злиття, тоді ви можете здійснити злиття.


1
Так, правильно. Будь-який коміт, будь то конфлікт злиття або локальний коміт, який ви намагаєтесь проштовхнути, повинен бути виконаний до того, як ви зможете натиснути на це фіксацію.
surendrapanday

1
Для тих, хто заплутався, якщо git add .не виконує всі файли, перевірте, чи перебуваєте ви в кореневому каталозі проекту. Взяв мене колись, щоб це зрозуміти. Потім git add .git merge --continue
сценізувати

А після вирішення конфлікту злиття потрібно спочатку ЗБЕРЕГТИ конфліктований файл перед індексуванням об’єднаних змін.
nclark

22

Для тих, кому важко знайти "кнопки злиття".

Маленька піктограма лампочки з параметрами злиття відображається лише в тому випадку, якщо ви точно клацнете на "маркер конфлікту злиття"

<<<<<<<

Етапи (у VS Code 1.29.x):


19
  1. Натисніть кнопку "Керування джерелом" зліва.
  2. Див. ЗМІНЕННЯ ЗМІН на бічній панелі.
  3. Ці файли мають конфлікти злиття.

Код VS> Керування джерелом> Злиття змін (Приклад)


1
Раніше у мене були опції "Прийняти поточні зміни | Прийняти вхідні зміни ...", але тепер ці параметри просто зникли з рядка, є ідея, як розкрити ці параметри знову?
jet_choong

15

Повідомлення про помилку, яке ви отримуєте, є результатом того, що Git все ще думає, що ви не вирішили конфлікти злиття. Насправді у вас вже є, але вам потрібно сказати Git, що ви зробили це, додавши до індексу вирішені файли.

Це має побічний ефект, що ви насправді можете просто додати файли, не вирішуючи конфліктів, і Git все одно вважатиме, що ви маєте. Тож ви повинні бути старанними, переконуючись, що дійсно вирішили конфлікти. Ви навіть можете запустити збірку та протестувати код перед тим, як зробити коміт.


3

Для VS Code 1.38 або якщо ви не можете знайти жодної кнопки "лампочки". Приділіть пильну увагу сірому тексту над конфліктами; є список дій, які ви можете вжити.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.