Vscode: Admite la herramienta de resolución de conflictos de Git similar a IntelliJ, WebStorm

Creado en 31 oct. 2017  ·  91Comentarios  ·  Fuente: microsoft/vscode

IntelliJ, y todos los demás IDE basados ​​en IntelliJ, como WebStorm, admiten una herramienta de resolución de conflictos de git merge que muestra el conflicto en tres columnas:

  • la primera columna para cambios locales
  • la tercera columna para los cambios del servidor
  • la segunda columna para el resultado de resolución de conflictos

Por favor vea mi archivo adjunto.
merge-conflict-resolution

Me parece que es muy fácil para nosotros resolver los conflictos, porque puedo comparar los cambios locales y los cambios del servidor en las mismas ventanas, y puedo ver el resultado de la resolución de inmediato.

¿Podemos apoyar eso?

feature-request merge-conflict

Comentario más útil

Esta será una característica genial, uso VSCode para mi trabajo diario, pero a menudo recurro a WebStorm cuando necesito resolver un conflicto de fusión debido a su interactividad y facilidad de uso.

Todos 91 comentarios

Esta será una característica genial, uso VSCode para mi trabajo diario, pero a menudo recurro a WebStorm cuando necesito resolver un conflicto de fusión debido a su interactividad y facilidad de uso.

¿Alguna noticia sobre esto? esta característica sería asombrosa. Por un lado, hay una herramienta de diferencias (es decir, comparar dos archivos) en el código VS, pero no puede editar / elegir qué guardar; por otro lado, existe una herramienta de fusión de conflictos que permite elegir qué mantener (cambio actual / su cambio). Ahora, lo mejor sería tener ambas herramientas en una sola, como la herramienta sugerida por @uyhung.

También quería agregar, para cualquier colaborador que venga: VS Code es una pieza de software increíble, ¡sigan así :)!

Será una característica asombrosa ... ¿alguna novedad? ¿Alguien recomienda alguna extensión que haga algo similar?

Lo estoy usando en PyCharm. Una característica tan sorprendente que ayuda mucho a evitar errores en fusiones más grandes. Todos los linters están disponibles durante el proceso, por lo que los errores / violaciones de estilo / variables no utilizadas son fáciles de detectar.

Date prisa con esta función si planeas implementarla :)

Pulgar hacia arriba 👍 para este. Eso es lo único que me detiene para cambiar totalmente a VSCode. Sería muy útil y útil.

El día que implemente esta función dejaré de usar webstorm.

No solo para resolver conflictos, este diseño también debería estar disponible para ver el archivo de historial.

git config merge.conflictStyle diff3 y tiene esto hoy, pero con el diseño en el editor de VSCode, que es mucho mejor que abrir un diálogo y una nueva ventana para ver el archivo que ya tenía abierto en mi opinión.

¿Hay noticias? ¿Está programado tal vez, o está previsto que esté programado?

Si realmente necesario

esta es una característica muy necesaria, estoy usando la idea inteliij solo para resolver conflictos.

+1, ¡esto sería genial!

¡+1 aquí! Tratando de hacer el cambio, pero en mi opinión, esta es una de las principales características que faltan para cambiar de WebStorm a VSCode

¿Podemos detenernos con los comentarios +1? No aporta nada a la conversación.
Solo mira este hilo y espera ...

@Zielak +1 dejemos de agregar más comentarios

¿Alguien sabe si hay algún complemento que pueda hacer esto posible?

@rajjejosefsson Como dije anteriormente , puede configurar: ( git config merge.conflictStyle diff3 )

[merge]
  conflictStyle = diff3

para verlos / común / nosotros. No cambiará el formato / tema de VSCode, pero obtendrá esas tres partes en su diff en lugar de solo ellos / nosotros como es el (git) predeterminado.

A menos que haya algo más (aparte de abrir varios diálogos solo para volver a ver una diferencia en el archivo que ya tenía abierto) que ofrecen los IDE de JetBrains que me faltan aquí.

El Sublime Merge recién lanzado tiene una implementación similar.

Esta será una característica genial, uso VSCode para mi trabajo diario, pero a menudo recurro a WebStorm cuando necesito resolver un conflicto de fusión debido a su interactividad y facilidad de uso.

Puede agregar esta configuración en su archivo .gitconfig y escribir "git mergetool" en su terminal siempre que aparezca un conflicto. Solo abrirá la interfaz de combinación de interfaz gráfica de usuario de webstorm para cada archivo.

[mergetool "webstorm"]
    cmd = webstorm merge $(cd $(dirname "$LOCAL") && pwd)/$(basename "$LOCAL") $(cd $(dirname "$REMOTE") && pwd)/$(basename "$REMOTE") $(cd $(dirname "$BASE") && pwd)/$(basename "$BASE") $(cd $(dirname "$MERGED") && pwd)/$(basename "$MERGED")
    trustExitCode = true
[merge]
    tool = webstorm

+1 aquí, ¡es ahora la única razón por la que uso webstorm!

+1

+1

Es cierto que VS Code es increíble, excepto por la falta de esta herramienta de interfaz de usuario.

+1, así es exactamente como espero que se vea la herramienta de combinación.
Y el # 5770 debería implementarse así.

+1 es la única característica que realmente me falta al usar VSC en comparación con WebStorm.

Me gustaría mucho que esto se implementara también, el único gran conjunto que veo en el código VS como un IDE completo

Ok, dado que Webstorm parece ser la única solución real, voy a descargarla ahora.
¡¡Realmente espero que VSCode admita esta función !!

Además, ¿alguien podría rechazar esta publicación por mí? Gracias p

¿Está esta característica incluso en las obras?

+1, lo usaría totalmente si se implementara

Agregué una nueva configuración y comando para mejorar un poco la resolución de conflictos de fusión, aquí está la experiencia después de que se fusione https://github.com/microsoft/vscode/pull/74231

En primer lugar, se agregó una nueva configuración merge-conflict.diffViewContext para mostrar el contexto en torno al conflicto

Antes: no hay contexto alrededor de la diferencia
compare-withoutcontext

Después: con "merge-conflict.diffViewContext": 3
compare-with-context

En segundo lugar, se introduce un nuevo comando Comparar todo para mostrar la comparación completa entre el espacio de trabajo actual y los cambios entrantes, con el que puede comparar el contenido antiguo, el entrante y el contenido local más reciente en el disco.

compare-all

Es necesario trabajar más en el área del editor para admitir el estilo JetBrains, por ejemplo, abriendo un grupo de editores de tres columnas desde el conflicto. Pero aún quiero escuchar sus comentarios sobre la solución actual mencionada anteriormente.

Esto es genial. ¿Puede elegir línea por línea qué cambio desea fusionar en el nuevo archivo o es solo un archivo u otro? ¡Línea por línea o todo sería increíble!

Si puede aceptar cada cambio de cualquier archivo bloque por bloque y fusionarlo en el tercero, probablemente cubrirá la mayoría de los casos de uso. Entonces, por ejemplo, si un archivo tenía 3 cambios y el otro archivo tenía 4, podría elegir lo que quisiera. Como aceptar 2 cambios de un archivo y 2 cambios del otro. ¿Puede hacer esto? Si es así ... ¡eso mola!

@rebornix El contexto adicional es bueno, y me gusta comparar todo, pero para mí todavía faltan algunas cosas:

  1. Comparando cada "lado" con la base común - si bien una vista de combinación de 3 vías es probablemente la mejor, esto al menos podría ayudar mientras tanto (he estado jugando con agregar algo para esto en GitLens)
  2. Poder editar en la vista de comparación y sincronizar los cambios con el documento: esto es algo de lo que se habló antes de que se introdujera la combinación mejor en el núcleo. Aquí había una solicitud al respecto (aunque la solicitud original se ha ido: llorar :) https://github.com/microsoft/vscode/issues/10547#issuecomment -300201327 '

El # 2 probablemente se pueda hacer hoy con un proveedor de sistema de archivos personalizado (aunque eso se siente como una exageración)

@eamodio

Comparando cada "lado" con la base común - si bien una vista de combinación de 3 vías es probablemente la mejor, esto al menos podría ayudar mientras tanto (he estado jugando con agregar algo para esto en GitLens)

Este requiere agregar una nueva vista de diferencias de tres vías (un algoritmo de diferencias de tres vías y un editor de tres columnas) pero es factible. Para el n. ° 2, creo que un proveedor de sistema de archivos personalizado es el camino correcto a seguir, ya que el contenido del archivo en el disco contiene conflictos de fusión (como >>>>>>, <<<<<< ), al seleccionar cambios de contenido de la vista de diferencias, no queremos estropear el archivo en el disco, por lo que ya es un proveedor de sistema de archivos virtual.

Necesito mucho esta característica.

@rebornix Me gusta la idea. Creo que puede ser incluso mejor que abrir un editor de 3 columnas, ya que las pantallas de los portátiles no son tan grandes. Creo que puede ser más fácil mejorarlo un poco para que finalmente se parezca a la herramienta de combinación de Gitkracken que muestra el contexto en el editor superior y permite editar el archivo de relevo (que actualmente tiene >>>> <<<< ...) en la parte inferior .
merge-tool@2x

Sí, a menudo, cuando hay un conflicto de fusión, cambio a PHPStorm, incluso si el otro trabajo en el proyecto lo hago en VSCode. Es extraño que hayan pasado dos años y todavía no haya una fusión adecuada.

@rebornix Me gusta la idea. Creo que puede ser incluso mejor que abrir un editor de 3 columnas, ya que las pantallas de los portátiles no son tan grandes. Creo que puede ser más fácil mejorarlo un poco para que finalmente se parezca a la herramienta de combinación de Gitkracken que muestra el contexto en el editor superior y permite editar el archivo de relevo (que actualmente tiene >>>> <<<< ...) en la parte inferior .

No estoy de acuerdo, el diseño de tres columnas es parte de lo que hace que Webstorm sea tan genial. Mantiene una visión general muy ordenada.

Lo mismo aquí, siempre cambio a IntelliJ para fusionar la resolución de conflictos. ¡La herramienta de varita mágica "Resolver conflictos simples" también ahorra mucho tiempo!

Vuelvo a Visual Studio 2017 para resolver conflictos ...

El martes, 25 de junio de 2019 a las 8:35 a.m., fabb [email protected] escribió:

Lo mismo aquí, siempre cambio a IntelliJ para fusionar la resolución de conflictos.
¡La herramienta de varita mágica "Resolver conflictos simples" también ahorra mucho tiempo!

-
Estás recibiendo esto porque estás suscrito a este hilo.
Responda a este correo electrónico directamente, véalo en GitHub
https://github.com/microsoft/vscode/issues/37350?email_source=notifications&email_token=AAEN6O3LOPBVEY7PMABVNRDP4I3KZA5CNFSM4EBV5J4KYY3PNVWWK3TUL52HS4DFVREXG63JWWMVNW83 ,
o silenciar el hilo
https://github.com/notifications/unsubscribe-auth/AAEN6O4AO24V4GB24EWOJGDP4I3KZANCNFSM4EBV5J4A
.

vscode debe cambiar la herramienta de conflicto de git, porque al resolver los conflictos, vscode agrega <<< , === , lo que provoca un error de sintaxis de idioma

@ SupinePandora43 Eso no es VSCode, así es como git maneja los conflictos, agrega <<< , === a las líneas en conflicto. WebStorm analiza estos bloques y crea una gran herramienta visual para fusionar.

@vedmant entonces ... vscode necesita un analizador

@ minkir014 Verifique la imagen adjunta en el comentario original en la parte superior, esto es lo que todos quieren decir.

Esto es en consejos y trucos de código vs y eso significa que está integrado en código vs. Entonces, ¿por qué este tema sigue abierto?

@ minkir014 Vincularé la imagen del comentario original aquí nuevamente, porque claramente estás pensando en algo diferente: https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png

@ minkir014 Lo que hay en el código VS ahora no se acerca a la característica que tiene IntelliJ, solo compare esto: https://user-images.githubusercontent.com/1470309/32250860-c677e4ce-bec0-11e7-82b5-0196d981cc28.png y lo que publicó https://github.com/Microsoft/vscode-tips-and-tricks/blob/master/media/resolve_merge_conflicts.gif ¿ves muchas similitudes?

@ minkir014 porque la característica incorporada no es la misma que estamos discutiendo en este hilo.

La combinación de tres vías es la única característica que me impide usar VSCode como mi único IDE.

La combinación de tres vías es la única característica que me impide usar VSCode como mi único IDE.

Te escucho. Esta es una característica excelente que debemos tener. Tengo que mantener PHPStorm alrededor solo por esta razón.

Me tomó un tiempo darme cuenta de que tiene la mayor parte de lo que _necesita_ contenido en las actualizaciones del hilo anterior, simplemente no se muestra de forma bonita, ni puede hacer diferencias arbitrarias de 3 vías (para ser superpoblado en el futuro por GitLens con arbitrary cometer selección diferencial y ancestro, sin duda).

Los cambios de configuración a continuación cubren la mayoría de las necesidades de contextualización de conflictos de fusión del mundo real mejor que la configuración predeterminada de VSCode / Git cuando desea poder comprender el contexto de dos cambios diferentes cuando se realizaron, al mismo tiempo que concilia sus diferencias. Entonces, para futuros buscadores:

  1. Habilite la revelación del antepasado común (diferente) de dos diferencias cambiando su estilo de conflicto de git a diff3. Haga esto editando su ~ / .gitconfig o usando el cli: git config merge.conflictStyle diff3
  2. Establezca la configuración de VSCode para la posición de vista diferencial en "Debajo" o "Al lado" "merge-conflict.diffViewPosition": "Below"

Enhorabuena, ahora puede ver el contexto de sus dos diferencias como referencias estáticas, la base común desde la que ambos se ramificaron, y todo sin dejar de realizar ediciones en los tres contextos (antecesor, rama A y rama B) utilizando la diferenciación en línea. Ahora es un vimdiff de pobres.

(agregar un panel estático para mostrar la diferencia del ancestro común sin resaltados sería una adición fácil y fácil sin requerir un editor importante o actualizaciones de algoritmos de diferencia, hablando de vimdiff)

¿Y si estos no son cambios en GIT? (Estoy usando forzosamente, y ahora mismo no tengo otra opción).

Duplicado de # 25887

Esa es una vista de dos columnas. Esta es una vista de tres columnas.

Duplicado de # 25887

Esa es una vista de dos columnas. Esta es una vista de tres columnas.

Pensé que valdría la pena vincular los problemas, porque es el mismo problema.
Dos o tres columnas son parte de la solución.
En una nota al margen, mi motivación para vincular es atraer la atención de ambos problemas y agregar el comportamiento que falta lo antes posible; realmente me gustaría usar esa función ☺

Pero aquí hay 427 votos contra 310 (# 25887). Tal vez pueda fusionar contar los votos juntos si ya desea fusionar. Esta característica estará entre las 10 mejores

La implementación de una combinación de 3 paneles de estilo IntelliJ eficaz y fácil de usar (a veces denominada combinación de tres vías, pero son dos archivos combinados en un panel de resultados) colocaría el producto del editor de VS Code en la cima del mundo. Estoy seguro de esto, y varios de estos hilos y muchos comentarios cuentan la historia de personas que "se aferran" a sus productos Intellij simplemente por la falta de esta función. No veo cómo una solicitud de función podría estar mejor motivada o una prioridad más clara para los propietarios / desarrolladores de productos. ¿Alguna noticia sobre sus pensamientos (desarrolladores, administradores en vs código) sobre esto?

El hecho de que algunas personas aluden a lo cerca que las características ya implementadas llevan a VS Code al resultado deseado, solo me dice que implementar esto hasta el final no debería ser realmente tan exigente, si la mayor parte del trabajo ya está hecho.

Esta es exactamente la razón por la que sigo usando Meld como mi herramienta de fusión.

Esta es exactamente la razón por la que sigo usando Meld como mi herramienta de fusión.

La fusión sublime es mucho mejor que la fusión

Esta es exactamente la razón por la que sigo usando Meld como mi herramienta de fusión.

La fusión sublime es mucho mejor que la fusión

Estoy de acuerdo, aunque no creo que este sea el lugar para discutir qué herramienta de fusión es la mejor que existe.

¿Es al menos posible mostrar una BASE común para los cambios actuales y futuros?

@ackvf sí, puedes con la diferencia de tres vías

¿qué hay de nuevo?

Esperando también, alguien por favor notenme cuando esté disponible

esperando lo mismo ... tener esa herramienta será increíble

tal vez debería obtener IntelliJ también :)

+1 aquí, ¡es ahora la única razón por la que uso webstorm!
+1
esperando lo mismo ... tener esa herramienta será increíble
tal vez debería obtener IntelliJ también :)

Deje de enviar spam a todos los suscriptores de este ticket con mensajes no relacionados.

Consulte esto https://marketplace.visualstudio.com/items?itemName=mhutchie.git-graph#review -details. Creo que esta extensión casi tiene características similares a las de Webstorm IDE.

Esta es la razón principal por la que no uso vscode como mi editor principal. Sería genial ver esto agregado, ya que la integración y fusión de git incorporada es mucho más útil en WebStorm. Sería genial ver esto agregado.

Necesito esto en mi vida.

¿No tienes noticias sobre esta función? o incluso un complemento está bien: D ??

vscode es genial, pero de hecho sigue usando la herramienta de combinación intellij solo para eso ..)

Todas las noticias que tenemos son la hoja de ruta 2020 que menciona "compatibilidad total con la fusión (3 vías)": https://github.com/microsoft/vscode/wiki/Roadmap#scm

¡Oh hombre! una gran falta de VSCode. Me pregunto cómo sobreviven los desarrolladores sin esta función. Voy a recurrir a Webstorm para esto

Verificó la extensión de Git Graph para Visual Studio Code, pero aún no es la función. Estoy usando vscode para todos, excepto para fusionar versiones selectivas con pycharm.

_Todavía_ usando IntelliJ para fusionar. También el panel de confirmaciones, donde podemos elegir qué confirmaciones del mismo archivo guardar. etc. 😐

Hombre Creé esta solicitud hace 3 años :)

Aunque VSCode es genial, todavía tengo que usar Webstorm para tareas relacionadas con Git :(

estoy esperandolo

¿Por qué todavía no apoyas esto? ¿Existe algún complemento de vscode que desempeñe el mismo papel en el mercado?

@sshsu
Puede que me equivoque, pero creo que los factores limitantes son las funciones del editor que faltan. Si fuera posible escribir un complemento, ya habría uno

Puede que me equivoque, pero creo que los factores limitantes son las funciones del editor que faltan. Si fuera posible escribir un complemento, ya habría uno

Mas o menos. Comencé a implementar un complemento de combinación en mi tiempo libre y lo único que realmente me faltaba era https://github.com/microsoft/vscode/issues/85682

Sin embargo, estoy realmente agradecido por ide vscode de código abierto 😍 Así que estaré feliz con todo lo que se agregará, tal vez incluso veamos esta característica este año, ya que es parte de la hoja de ruta 2020 😍😍

¿Llegará alguna vez esta función? La línea principal de Visual Studio tiene fusión de 3 vías en TFS

Quizás quieras probar mi nueva extensión VS Code como Git Mergetool . Tiene algunos déficits debido a la falta de API, pero todavía no he recibido ningún comentario negativo, excepto de mí mismo. Sin embargo, el diseño propuesto de cuatro paneles podría incluso tener algunas ventajas sobre un diseño de tres columnas.

Aún no está en Marketplace, pero se puede instalar manualmente. _Ahora está disponible en Marketplace ._

Eliminaré webstorm cuando obtenga esta función.

Muy necesario: +1:

Esta será una gran característica <3

Como solución temporal se utilizan herramientas en línea como https://editor.mergely.com

Tengo un comentario aquí de hace unos años que dice lo mismo que otros, y aunque creo que una vista de fusión de tres vías alternativa sería increíble, en realidad prefiero esta forma básica ahora, ya que es literalmente solo una máscara sobre el texto que pone git allí.

Lo que quiero decir es que esto no debería ser un "bloqueador" para cualquiera que use VSCode. Pruébelo en lugar de volver a un IDEA IDE para interacciones de git. (La única extensión que recomiendo es Git Graph)

¿Fue útil esta página
0 / 5 - 0 calificaciones