Resolución de conflictos de combinación
Azure Repos | Azure DevOps Server 2020 | Azure DevOps Server 2019 | TFS 2018-TFS 2015
Visual Studio 2019 | Visual Studio 2017 | Visual Studio 2015
Al combinar una rama en otra, los cambios de archivo de confirmaciones en una rama pueden entrar en conflicto con los cambios de 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 los cambios, Git detiene la combinación y le indica qué archivos están en conflicto.
En este tutorial, aprenderá a:
- Comprender los conflictos de combinación
- Resolución de conflictos de combinación
Comprender los conflictos de combinación
En la imagen siguiente se muestra un ejemplo muy básico de cómo los cambios están en conflicto en Git. Tanto la rama principal como la de corrección de errores hacen actualizaciones en las mismas líneas de código fuente.

Si intenta combinar la rama de corrección de errores en principal, Git no puede determinar qué cambios usar en la versión combinada. Es posible que desee mantener los cambios en la rama principal, la rama de corrección de errores o alguna combinación de las dos. Resuelva este conflicto con una confirmación de combinación en la rama principal que concilia los cambios en conflicto entre las dos ramas.

La situación de conflicto de combinación más común es cuando se extrae actualizaciones de una rama remota a la rama local, por ejemplo desde origin/bugfix en la rama bugfix local.
Resuelva estos conflictos de la misma manera: cree una confirmación de combinación en la rama local que concilia los cambios y complete la combinación.
¿Qué hace Git para evitar conflictos de combinación?
Git conserva un historial completo de todos los cambios realizados en el repositorio. Git usa este historial, así como las relaciones entre confirmaciones para ver si puede ordenar los cambios y resolver la combinación automáticamente. Los conflictos solo se producen cuando no queda claro en el historial cómo se deben combinar los cambios en las mismas líneas de los mismos archivos.
Evitar conflictos de combinación
Git es muy bueno para combinar automáticamente los cambios de archivo en la mayoría de las circunstancias, siempre que el contenido del archivo no cambie drásticamente entre confirmaciones. Considere la posibilidad de volver a usar ramas antes de abrir una solicitud de extracción si la rama está muy por detrás de la rama principal. Las ramas rebasedas se combinarán en la rama principal sin conflictos.
Resolución de conflictos de combinación
Nota:
Si utiliza Visual Studio 2019, versión 16.8 o una posterior, pruebe la experiencia del control de versiones de Git. Obtenga más información sobre las diferencias de Git con respecto de Team Explorer en esta página de comparación en paralelo.
Se le informará de los conflictos de combinación cuando extraiga cambios o intente combinar dos ramas.
Aparece la notificación de conflicto. Haga clic en el vínculo Conflictos para iniciar la resolución de conflictos de archivos.

Se mostrará una lista de archivos con conflictos. La selección de un archivo permite aceptar los cambios en la rama de origen desde la que se combina con el botón Tomar origen o aceptar los cambios en la rama en la que se va a combinar mediante Mantener destino. Puede combinar manualmente los cambios seleccionando Combinar y, a continuación, escriba los cambios directamente en la herramienta de combinación especificada en la configuración de Git.
Use las casillas situadas junto a las líneas modificadas para seleccionar completamente entre los cambios remotos y locales, o edite los resultados directamente en el editor de resultados en el editor de origen y destino de la vista de diferencias.
Cuando haya terminado de realizar cambios, haga clic en Aceptar combinación. Repita este paso para todos los archivos en conflicto.
Abra la vista Cambios en Team Explorer confirmar los cambios para crear la confirmación de combinación y resolver el conflicto.

Compare las confirmaciones en conflicto, así como las diferencias entre el historial común y las opciones de Visual Studio la herramienta de combinación.
