Resolución de conflictos de combinación en Visual Studio
Al combinar una rama en otra, los cambios de archivo de confirmaciones de una rama pueden entrar en conflicto con los cambios en la otra. Git intenta resolver estos cambios mediante el historial del repositorio para determinar el aspecto de los archivos combinados. Cuando no está claro cómo combinar cambios, Git detiene la combinación y le indica qué archivos entran en conflicto.
Evitar conflictos de fusión mediante combinación
Git es bueno al combinar automáticamente los cambios de archivo en la mayoría de las circunstancias, siempre y cuando el contenido del archivo no cambie drásticamente entre confirmaciones. Si su rama está muy por detrás de la rama principal, considere la posibilidad de fusionar las ramas mediante cambio de base ("rebase") antes de abrir una solicitud de incorporación de cambios ("pull request"). Las ramas fusionadas mediante cambio de base se fusionarán mediante combinación en la rama principal sin conflictos.
Resolución de conflictos de combinación
Si colabora con otros usuarios en la misma rama, puede que observe conflictos de fusión mediante combinación al enviar los cambios ("push").
Visual Studio detecta si la rama local en la que ha estado trabajando está detrás de su rama de seguimiento remoto y, a continuación, ofrece opciones para elegir.
Nota
Si el repositorio remoto admite la opción Forzar envío de cambios, puede habilitarlo mediante Git>Configuración.
En este ejemplo, seleccione Incorporar y enviar cambios para incluir los cambios introducidos en el repositorio remoto. Si hay conflictos de fusión mediante combinación al incorporar cambios o al intentar fusionar mediante combinación dos ramas, Visual Studio le permite saberlo en la ventana Cambios de Git, en la ventana Repositorio de Git y en los archivos que presenten conflictos.
La ventana Cambios de GIT muestra una lista de archivos con conflictos en Cambios sin fusionar. Para empezar a resolver conflictos, haga doble clic en un archivo. O bien, si tiene un archivo con conflictos abiertos en el editor, puede seleccionar Abrir editor de mezcla.
En el Editor de mezcla, empiece a resolver el conflicto mediante cualquiera de los métodos siguientes (como se muestra en la captura de pantalla numerada):
Revise sus conflictos línea por línea, y elija entre mantener el lado derecho o el lado izquierdo marcando las casillas.
o bien
Seleccione el botón Take Incoming (o presione F10) para aceptar todos los cambios entrantes o botón Take Current (o presione F11) para mantener la versión actual de todos los cambios en conflicto. Usted puede hacer lo mismo seleccionando una de las casillas situadas en la parte superior de cualquiera de los marcos en paralelo.
o bien
Edite el código manualmente en la ventana Resultado.
Cuando haya terminado de resolver los conflictos de fusión mediante combinación, seleccione Aceptar "merge". Repita este proceso para todos los archivos en conflicto.
Use la ventana Cambios de GIT para crear una confirmación de fusión mediante combinación ("merge commit") y resolver el conflicto.
Nota
Si quiere mantener todos los cambios en un archivo, puede hacer clic con el botón derecho en este en la sección Cambios sin combinar y seleccionar Mantener actual (local) sin tener que abrir el Editor de combinación.
Sugerencia
Para obtener más información sobre las opciones de accesibilidad disponibles, consulte la sección métodos abreviados de teclado de Git de la página de sugerencias y trucos de accesibilidad para Visual Studio .
Configuración de la herramienta de diferencias
Si configuras el archivo .gitconfig
para utilizar una herramienta de comparación de terceros como BeyondCompare o KDiff3, Visual Studio respeta esta configuración. Siempre que Visual Studio muestra normalmente una diferencia, se abre una ventana independiente en la herramienta de su elección. Para obtener un ejemplo, consulte esta pregunta de Stack Overflow .