Branches, PRs
y tu primer repositorio público
Las últimas dos herramientas que completan tu dominio de Git — y el proyecto que convierte todo el trabajo del Módulo 1 en tu primer portafolio público en GitHub.
Branches: líneas de trabajo paralelas
Una branch (rama) es una línea de trabajo independiente dentro del mismo repositorio. Te permite desarrollar nuevas funciones, corregir bugs o experimentar ideas sin afectar el código principal que ya funciona. Es una de las características más poderosas de Git y la base del trabajo colaborativo en equipos profesionales.
El tronco del árbol es tu código principal (main): estable, probado, listo para producción. Las ramas crecen desde el tronco en distintas direcciones sin afectarlo. Puedes cultivar una rama por semanas, y cuando esté lista y sana, la injertas de vuelta al tronco. Si una rama se seca, simplemente la podas sin que el árbol sufra. Así es exactamente como Git maneja las branches.
La rama main: el código que siempre funciona
Por convención, la rama main (antes llamada master) contiene siempre la versión estable y funcional del proyecto. Es la rama que ven los usuarios, la que se despliega a producción, la que nunca debería tener código roto. Nunca desarrolles directamente en main — para eso están las ramas de trabajo.
Los equipos profesionales tienen una regla simple: main siempre funciona. Todo el desarrollo nuevo ocurre en ramas separadas. Cuando una función está completa y probada, se fusiona a main mediante un Pull Request. Este flujo se llama GitHub Flow y lo usan empresas como GitHub, Airbnb, Shopify y millones de proyectos open source.
Cómo se ve el flujo con branches
🟢 main (estable) | 🔵 feat/inventario (desarrollo) | 🟡 M = merge point
Comandos esenciales de branches
El proceso completo: rama → trabajo → merge
Convenciones de nombres de ramas
| Prefijo | Para qué se usa | Ejemplo real |
|---|---|---|
feat/ | Nueva funcionalidad | feat/sistema-inventario |
fix/ | Corrección de bug | fix/division-por-cero |
docs/ | Documentación | docs/actualizar-readme |
refactor/ | Mejora de código sin cambiar funcionalidad | refactor/extraer-funciones |
hotfix/ | Corrección urgente en producción | hotfix/crash-al-iniciar |
chore/ | Mantenimiento general | chore/actualizar-dependencias |
¿Qué pasa cuando dos ramas modifican el mismo archivo?
Cuando dos ramas modifican las mismas líneas de código y luego se intenta fusionarlas, Git no sabe cuál versión conservar. Esto se llama conflicto de merge. Git marca el archivo con indicadores especiales para que tú —como programador— decidas qué código queda:
# Git marca el conflicto con estos delimitadores: <<<<<<< HEAD # código de tu rama actual def calcular(n1, op, n2): print("Calculando...") ======= # separador def calcular(n1, op, n2): print(f"Calculando {n1} {op} {n2}...") >>>>>>> feat/mejorar-mensajes # código de la otra rama # Tu trabajo: elegir cuál versión conservar (o combinarlas), # borrar los marcadores, guardar el archivo, y hacer commit.
Los conflictos de merge asustan a los principiantes, pero son completamente normales en equipos. Git simplemente te pide que decidas qué código prevalece. La mejor manera de minimizarlos es hacer commits frecuentes, ramas de vida corta (1–3 días) y comunicación entre el equipo sobre qué archivos está tocando cada quien.
¡Módulo 2 completado!
Dominas Git y GitHub: control de versiones, repositorios, commits, branches, pull requests y publicación de proyectos. Tu portafolio en GitHub ya está vivo.
El Módulo 3 (Estructuras de datos, archivos y POO) te espera.
0 Comentarios