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 o master

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.