Reply To: VS CODE NO MUESTRA EL “CONFLICTO” Lección 5, Tema 7
Cuando ejecutas el comando git merge header, Git intenta combinar los cambios de la rama header en la rama master. Si no hay conflictos entre las dos ramas (es decir, si no hay líneas de código que hayan sido modificadas en ambas ramas de manera incompatible), Git puede completar la fusión automáticamente. En ese caso, lo único que necesitas hacer es proporcionar un mensaje de confirmación (commit message) para finalizar la fusión.
En tu caso, Git ha hecho la fusión automáticamente porque no encontró conflictos en el archivo index.html. Por eso, lo que ves en VS Code es el archivo MERGE_MSG, que es donde debes proporcionar un mensaje para el commit de la fusión.
Para finalizar la fusión, simplemente guarda el mensaje de commit en el archivo MERGE_MSG y cierra el editor. Luego, continúa el proceso de commit desde la línea de comandos si es necesario.
Si deseas ver cómo se gestionan los conflictos de fusión, puedes crear un conflicto intencionalmente:
- Realiza cambios contradictorios en el mismo archivo y en las mismas líneas en ambas ramas (header y master).
- Realiza commits en ambas ramas.
- Intenta fusionar las ramas de nuevo.
Aquí tienes un ejemplo para crear un conflicto de fusión intencional:
Paso 1: Asegúrate de estar en la rama master y realiza un cambio:
1.- Cambiar a la rama master:
git checkout master
2.- Editar el archivo index.html para realizar un cambio:
Abre index.html en tu editor de código (por ejemplo, VS Code) y realiza un cambio. Por ejemplo, agrega una nueva línea de contenido dentro del <body>:
<body>
<h2>Hi! Welcome to my master page</h2>
<h3>I'm <span>Master</span></h3>
<p>Contenido de la rama master.</p>
</body>
3.- Guardar los cambios y realizar un commit:
En la línea de comandos, añade los cambios y realiza el commit:
git add index.html
git commit -m "Cambio en el body de master"
Paso 2: Cambia a la rama header y realiza un cambio diferente
1.- Cambiar a la rama header:
git checkout header
2.- Editar el archivo index.html para realizar un cambio diferente:
Abre index.html en tu editor de código y realiza un cambio diferente. Por ejemplo:
<body>
<h2>Hi! Welcome to my header page</h2>
<h3>I'm <span>Header</span></h3>
<p>Contenido de la rama header.</p>
</body>
3.- Guardar los cambios y realizar el commit:
En la línea de comandos, añade los cambios y realiza el commit:
git add index.html
git commit -m "Cambio en el body de header"
Paso 3: Vuelve a la rama master y fusiona la rama header
1.- Cambiar a la rama master:
git checkout master
2.- Fusionar la rama header en master:
git merge header
En este punto, si hay conflictos (como ambos cambios modificando las mismas líneas en el archivo index.html), Git te informará de los conflictos y necesitarás resolverlos manualmente en tu editor de código.
Paso 4: Resolver el conflicto en el editor de código
1.- Abre el archivo index.html en tu editor de código. Verás algo así:
<body>
<<<<<<< HEAD
<h2>Hi! Welcome to my master page</h2>
<h3>I'm <span>Master</span></h3>
<p>Contenido de la rama master.</p>
=======
<h2>Hi! Welcome to my header page</h2>
<h3>I'm <span>Header</span></h3>
<p>Contenido de la rama header.</p>
>>>>>>> header
</body>
2.- Edita el archivo para resolver el conflicto. Decide qué contenido quieres mantener o combina ambos:
<body>
<h2>Hi! Welcome to my merged page</h2>
<h3>I'm <span>Merged</span></h3>
<p>Contenido combinado de master y header.</p>
</body>
3.- Guarda el archivo index.html.
Paso 5: Añade y realiza el commit para completar la fusión
1.- Añade los cambios:
git add index.html
2.- Realiza el commit para finalizar la fusión:
git commit -m "Resolviendo conflicto entre master y header"a
Siguiendo estos pasos, podrás experimentar el proceso completo de crear y resolver conflictos de fusión usando Git desde la línea de comandos y tu editor de código.