Los mas nuevo

6/recent/ticker-posts

Curso de programación GRATIS Modulo II: Git y GitHub Parte II

Portada del curso
0%
Módulo 2 · Parte 2
✅ Parte 1 completada
🚀 Proyecto del módulo
Publicar en GitHub
Completa L4 y L5 para desbloquearlo
Módulo 2 · Parte 2 · Git & GitHub · 2026

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.

2Lecciones
1Proyecto real
2Mini quizzes
Tu portafolio
🔖 Marcadores
Sin marcadores — usa el botón dorado en cualquier lección.
L4
Intermedio

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.

🌿
Analogía: las ramas de un árbol

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.

💡 Flujo de trabajo estándar en la industria

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

📊 Diagrama — Desarrollo con branches
main
C1
C2
C3
M
← merge
feat/inventario
F1
F2
F3
→ PR → merge

🟢 main (estable)  |  🔵 feat/inventario (desarrollo)  |  🟡 M = merge point

Comandos esenciales de branches

Terminal — Crear, navegar y gestionar ramas
# Ver todas las ramas del repositorio $ git branch * main # el * indica la rama actual # Crear una rama Y cambiar a ella en un solo comando $ git checkout -b feat/agregar-busqueda Switched to a new branch 'feat/agregar-busqueda' # Forma moderna (Git 2.23+) — equivalente al anterior $ git switch -c feat/agregar-busqueda # Cambiar a una rama existente $ git switch main Switched to branch 'main' # Ver en qué rama estás en todo momento $ git branch --show-current feat/agregar-busqueda # Eliminar una rama (después de hacer merge) $ git branch -d feat/agregar-busqueda Deleted branch feat/agregar-busqueda (was f3a1c2b).

El proceso completo: rama → trabajo → merge

Terminal — Flujo real de una feature branch
# 1. Partir siempre de main actualizado $ git switch main $ git pull origin main # 2. Crear la rama para la nueva función $ git switch -c feat/buscar-producto # 3. Trabajar normalmente: editar, añadir, commitear $ git add inventario.py $ git commit -m "feat: implementar búsqueda por nombre" $ git commit -m "feat: agregar búsqueda por categoría" # 4. Subir la rama a GitHub $ git push origin feat/buscar-producto remote: Create a pull request for 'feat/buscar-producto' remote: https://github.com/usuario/repo/pull/new/feat/buscar-producto # 5. Después del merge en GitHub: limpiar localmente $ git switch main $ git pull origin main $ git branch -d feat/buscar-producto

Convenciones de nombres de ramas

PrefijoPara qué se usaEjemplo real
feat/Nueva funcionalidadfeat/sistema-inventario
fix/Corrección de bugfix/division-por-cero
docs/Documentacióndocs/actualizar-readme
refactor/Mejora de código sin cambiar funcionalidadrefactor/extraer-funciones
hotfix/Corrección urgente en producciónhotfix/crash-al-iniciar
chore/Mantenimiento generalchore/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:

Archivo con conflicto — Git lo marca así
# 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 son normales, no un error

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.

🧠 Quiz: Estás trabajando en la función de búsqueda del inventario y aún no está terminada. Alguien reporta un bug crítico en la calculadora que hay que corregir ahora. ¿Cuál es la forma correcta de manejarlo con Git?
🏆

¡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.


Publicar un comentario

0 Comentarios