Mira la lección en vídeo
Accede al vídeo completo de esta lección y a más contenido exclusivo con el Plan Plus.
Desbloquear Plan PlusResolver conflictos de merge visualmente
Los conflictos de merge surgen cuando Git no puede combinar automáticamente los cambios de diferentes versiones de un archivo. Esto ocurre típicamente cuando dos desarrolladores modifican las mismas líneas de código o cuando se realizan cambios en archivos que han sido editados tanto localmente como en el repositorio remoto.
Visual Studio Code proporciona un editor de merge visual que simplifica significativamente la resolución de estos conflictos, eliminando la necesidad de trabajar directamente con marcadores de conflicto en texto plano.
Identificación de conflictos en VS Code
Cuando se produce un conflicto durante un merge, VS Code lo identifica inmediatamente en la vista de Control de código fuente. Los archivos con conflictos aparecen marcados con un signo de exclamación (!) junto a su nombre, diferenciándolos claramente de los archivos sin conflictos.
📁 src/
⚠️ main.js (!)
✓ utils.js
⚠️ config.json (!)
Al hacer clic en un archivo conflictivo, VS Code abre automáticamente el 3-way merge editor, una interfaz visual que divide la pantalla en tres paneles para facilitar la comprensión y resolución del conflicto.
El editor de merge de tres vías
El 3-way merge editor presenta una vista dividida que muestra:
- Current (Actual): Los cambios en tu rama local actual
- Incoming (Entrante): Los cambios provenientes de la rama que se está fusionando
- Result (Resultado): El resultado final después de resolver el conflicto
Esta disposición permite comparar visualmente las diferencias y tomar decisiones informadas sobre qué cambios conservar. Cada panel está claramente etiquetado y utiliza colores distintivos para resaltar las diferencias.
Resolución mediante botones de acción
VS Code ofrece botones de acción rápida que aparecen directamente sobre las secciones conflictivas:
Accept Current: Conserva únicamente los cambios de tu rama local.
// Tu versión local se mantiene
function calcularTotal(precio) {
return precio * 1.21; // IVA incluido
}
Accept Incoming: Adopta los cambios provenientes de la otra rama.
// Se adopta la versión entrante
function calcularTotal(precio, descuento = 0) {
return precio * (1 - descuento) * 1.21;
}
Accept Both: Combina ambos conjuntos de cambios cuando es posible hacerlo sin conflicto.
// Ambas versiones se combinan
function calcularTotal(precio, descuento = 0) {
const precioConDescuento = precio * (1 - descuento);
return precioConDescuento * 1.21; // IVA incluido
}
Edición manual para conflictos complejos
Cuando los conflictos requieren una solución personalizada, el panel Result permite edición manual directa. Esto es especialmente útil cuando ninguna de las versiones automáticas es completamente correcta o cuando se necesita una combinación específica de ambos cambios.
// Conflicto complejo que requiere edición manual
function procesarPedido(items, cliente) {
// Combinar validación de ambas versiones
if (!items || items.length === 0) {
throw new Error('El pedido debe contener al menos un item');
}
if (!cliente.email || !cliente.direccion) {
throw new Error('Datos de cliente incompletos');
}
// Lógica personalizada que combina ambas aproximaciones
return {
id: generarId(),
items: validarItems(items),
cliente: normalizarCliente(cliente),
timestamp: new Date().toISOString()
};
}
Finalización del proceso de merge
Guarda tu progreso
Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.
Más de 25.000 desarrolladores ya confían en CertiDevs
Una vez resueltos todos los conflictos, VS Code actualiza automáticamente el estado del repositorio. Los archivos previamente marcados con "!" desaparecen de la lista de conflictos y pasan al área de staging como archivos modificados listos para commit.
El botón "Complete Merge" se activa automáticamente cuando no quedan conflictos pendientes, permitiendo finalizar el proceso con un solo clic. Este commit especial incluye automáticamente un mensaje descriptivo del merge realizado.
Abortar el merge cuando sea necesario
Si durante la resolución descubres que el merge es demasiado complejo o que prefieres abordarlo de otra manera, VS Code proporciona la opción "Abort Merge" en la vista de Control de código fuente.
Esta acción revierte completamente el estado del repositorio al momento anterior al inicio del merge, eliminando todos los cambios parciales y restaurando el estado original de los archivos. Es una operación segura que no afecta el historial de commits existente.
La funcionalidad de abort es especialmente valiosa cuando te encuentras con conflictos múltiples que requieren coordinación con otros miembros del equipo o cuando prefieres resolver los conflictos utilizando una estrategia diferente.
Aprendizajes de esta lección de VSCode
- Comprender qué son los conflictos de merge y cuándo ocurren.
- Identificar archivos con conflictos en Visual Studio Code.
- Utilizar el editor de merge de tres vías para comparar versiones y resolver conflictos.
- Aplicar acciones rápidas para aceptar cambios locales, entrantes o combinados.
- Realizar ediciones manuales en conflictos complejos y finalizar o abortar el merge según convenga.
Completa este curso de VSCode y certifícate
Únete a nuestra plataforma de cursos de programación y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.
Asistente IA
Resuelve dudas al instante
Ejercicios
Practica con proyectos reales
Certificados
Valida tus conocimientos
Más de 25.000 desarrolladores ya se han certificado con CertiDevs