Visual Studio Code ¿cómo resolver conflictos de fusión con git?

107

Intenté fusionar mi rama con otra rama y hubo un conflicto de fusión. En Visual Studio Code (versión 1.2.1) resolví todos los problemas, sin embargo, cuando intento comprometerme, me sigue dando este mensaje:

Primero debe resolver los cambios no fusionados antes de confirmar sus cambios.

Intenté buscarlo en Google, pero no puedo averiguar por qué no me permite realizar mis cambios, todos los conflictos han desaparecido.

annedroiid
fuente
1
Si bien lo que ha dicho es correcto, no resuelve el problema de la pregunta. Dije explícitamente que ya resolví todos los conflictos de fusión en la pregunta.
annedroiid

Respuestas:

111

Con VSCode puede encontrar fácilmente los conflictos de fusión con la siguiente interfaz de usuario. ingrese la descripción de la imagen aquí

(si no tiene la barra superior, establezca "editor.codeLens": trueen Preferencias de usuario)

Indica el cambio actual que tiene y el cambio entrante del servidor. Esto facilita la resolución de los conflictos, simplemente presione los botones de arriba <<<< HEAD.

Si tiene varios cambios y desea aplicarlos todos a la vez, abra la paleta de comandos (Ver -> Paleta de comandos) y comience a escribir combinación; aparecerán varias opciones, entre ellas Merge Conflict: Accept Incoming, etc.

Sajeetharan
fuente
1
¿Recibiste la última actualización? Lo mostraré en cada línea
Sajeetharan
1
Cómo obtener estas opciones de fusión y resolución de conflictos en el código de Visual Studio.
user630209
1
¿Cómo habilitar eso, algún atajo ?. No veo esa opción en mi archivo de conflicto.
user630209
1
@RyeGuy Esas opciones se muestran a través de CodeLens, por lo que debe habilitar CodeLens (consulte code.visualstudio.com/Docs/editor/… ).
Geri Borbás
73

Después de prueba y error, descubrí que necesita preparar el archivo que tenía el conflicto de fusión, luego puede confirmar la fusión.

annedroiid
fuente
1
Sí correcto. Cualquier confirmación, ya sea un conflicto de fusión o la confirmación local que está intentando impulsar, debe prepararse antes de poder enviar esa confirmación.
surendrapanday
1
Para aquellos que están confundidos si git add .no organiza todos los archivos, verifique si está en el directorio raíz del proyecto. Me tomó un tiempo darme cuenta de eso. Luego, git add .organizar todos los archivos, y luego me permitiógit merge --continue
bensadiku
Y después de resolver el conflicto de combinación, primero debe GUARDAR el archivo en conflicto antes de preparar los cambios combinados.
nclark
22

Para aquellos que están teniendo dificultades para encontrar los "botones de combinación".

El pequeño icono de bombilla con opciones de combinación solo aparece si hace clic con precisión en el "marcador de conflicto de combinación"

<<<<<<<

Pasos (en VS Code 1.29.x):

B12 Tostadora
fuente
19
  1. Haga clic en el botón "Control de fuente" a la izquierda.
  2. Consulte FUSIÓN DE CAMBIOS en la barra lateral.
  3. Esos archivos tienen conflictos de fusión.

VS Code> Control de código fuente> Combinar cambios (ejemplo)

Geoffrey Hale
fuente
1
Solía ​​tener las opciones "Aceptar cambio actual | Aceptar cambio entrante ...", pero ahora estas opciones simplemente desaparecieron de la línea, ¿alguna idea de cómo revelar estas opciones nuevamente?
jet_choong
15

El mensaje de error que recibe es el resultado de que Git sigue pensando que no ha resuelto los conflictos de fusión. De hecho, ya lo hizo, pero debe decirle a Git que lo hizo agregando los archivos resueltos al índice.

Esto tiene el efecto secundario de que en realidad podría simplemente agregar los archivos sin resolver los conflictos, y Git aún pensaría que sí. Por lo tanto, debe ser diligente para asegurarse de haber resuelto realmente los conflictos. Incluso puede ejecutar la compilación y probar el código antes de confirmar.

Tim Biegeleisen
fuente
3

Para VS Code 1.38 o si no pudo encontrar ningún botón de "bombilla". Preste mucha atención al texto en gris sobre los conflictos; hay una lista de acciones que puede realizar.

Qiang Li
fuente