Git & GitHub – DÍA 4

Ramas (branches), merges y resolución simple de conflictos

(trabajar en paralelo sin romper nada)


1. Objetivo del día

Hoy vas a aprender:

  • qué es una rama en Git
  • cómo crear nuevas ramas
  • cómo cambiar entre ramas
  • cómo fusionarlas (merge)
  • qué son los conflictos
  • cómo resolver un conflicto básico
  • cómo eliminar ramas
  • buenas prácticas profesionales

Si hoy consigues crear y fusionar ramas → Día 4 completado.


2. ¿Qué es una rama?

En Git, una rama es como una “línea paralela” donde puedes trabajar sin tocar la versión principal del proyecto.

La rama principal se llama normalmente:

main

Pero puedes crear ramas como:

feature-login
arreglar-bug
prueba-servidor

Una rama te permite:

  • experimentar sin romper nada
  • trabajar en paralelo contigo mismo
  • tener versiones separadas
  • fusionar cuando estés listo

3. Ver ramas existentes

git branch

La rama activa tendrá un *:

* main

4. Crear una rama nueva

git branch mi-rama

5. Cambiar de rama

git checkout mi-rama

O el método moderno más cómodo:

git switch mi-rama

6. Crear y cambiar en un paso

git checkout -b nueva-rama

o:

git switch -c nueva-rama

7. Trabajar en la rama

En tu nueva rama:

  1. modificas archivos
  2. haces commits
  3. pruebas cosas

Nada de esto afecta a main.


8. Fusionar ramas (merge)

Cuando ya estás listo para unir tu trabajo con main:

  1. Cambia a la rama principal:
git checkout main

o:

git switch main
  1. Fusiona:
git merge mi-rama

Si no hay conflicto:

Fast-forward

Y listo.


9. Eliminar una rama (cuando ya no la necesitas)

git branch -d mi-rama

Si Git te dice que no puede borrarla porque no está fusionada:

git branch -D mi-rama

⚠️ Esto la borra sin mirar.


10. Conflictos de fusión (muy simple)

Un conflicto ocurre cuando:

  • dos ramas modifican la misma parte del mismo archivo
  • Git no sabe cuál versión conservar

Git te muestra algo así:

<<<<<<< HEAD
línea desde main
=======
línea desde mi-rama
>>>>>>> mi-rama

Significa:

  • HEAD → la versión de la rama donde estás (ej. main)
  • ======= → separación
  • >>>>>> mi-rama → la versión de la otra rama

¿Cómo se resuelve?

  1. Abres el archivo con conflicto
  2. Editas para dejar SOLO la versión correcta
  3. Guardas el archivo
  4. Le dices a Git que resolviste:
git add archivo.txt
git commit

Y listo.


11. Práctica guiada (30 minutos)

1) Crear una rama

git switch -c prueba-rama

2) Editar archivo

echo "Línea en rama prueba-rama" >> archivo.txt
git add archivo.txt
git commit -m "Nueva línea en rama"

3) Cambiar a main

git switch main

4) Editar el mismo archivo de forma distinta

echo "Línea diferente en main" >> archivo.txt
git add archivo.txt
git commit -m "Cambio en main"

5) Intentar fusionar

git merge prueba-rama

→ Esto provocará un conflicto.

6) Resolver conflicto:

  1. Abrir archivo
  2. Eliminar los marcadores de conflicto (<<<, ===, >>>)
  3. Dejar solo el contenido final deseado
  4. Añadir:
git add archivo.txt
  1. Finalizar merge:
git commit

🎉 ¡Conflicto resuelto!


12. Checklist del Día 4

  • Sabes crear ramas
  • Sabes cambiar de rama
  • Commiteas en ramas distintas
  • Fusionas con git merge
  • Eliminaste ramas
  • Resolviste un conflicto básico
  • Entiendes los marcadores de conflicto

Si has marcado todo → Día 4 superado.


13. Ejercicio sugerido

Crea:

  • rama feature-logs
  • añade logs a un script
  • cambia a main
  • modifica el mismo script en otra línea
  • merge + conflicto
  • resolver manualmente
  • push a GitHub

Esto te prepara para los flujos de trabajo más comunes.


14. Día 4 completado

Ya sabes usar una de las características más potentes de Git: trabajar en paralelo sin romper nada.

Mañana vamos a un día que hace tu repositorio mucho más profesional:

👉 Día 5 – GitHub profesional: issues, README, wiki, releases y buenas prácticas.

Este cambia totalmente la forma de trabajar.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.

ACEPTAR
Aviso de cookies