🚀 Tutorial Git - Programación Colaborativa

Aprende a trabajar en equipo construyendo una página web de cafetería

1El Equipo y el Proyecto

Tres desarrolladores van a construir juntos una página web para una cafetería usando HTML, CSS y JavaScript.

👨‍💻 Tú (Líder)

Estructura inicial y header

👩‍💻 Ana

Sección de menú y estilos

👨‍💻 Beto

Footer y JavaScript

2Visualización del Flujo de Trabajo

Líder (main)
Ana
Beto
Merge

3Línea de Tiempo del Desarrollo

🎬 Inicio - Líder crea el proyecto

git init git add . git commit -m "feat: estructura inicial del proyecto"

Archivos creados: index.html, styles.css, script.js

🌿 Líder - Rama feature-header

git checkout -b feature-header # Agrega header con navegación git commit -m "feat: agregado header con navegación" git commit -m "style: estilos básicos del header" git push origin feature-header

Merge a main

🌸 Ana - Rama feature-menu

git checkout -b feature-menu # Agrega sección de menú con productos git commit -m "feat: agregada sección de menú" git commit -m "style: estilos de la sección menú" git push origin feature-menu

Merge a main

🔵 Beto - Rama feature-footer

git checkout -b feature-footer # Agrega footer y JavaScript git commit -m "feat: agregado footer" git commit -m "feat: funcionalidad para mostrar teléfono" git push origin feature-footer

💥 ¡Conflicto de Merge!

⚠️ Beto intenta hacer merge con main

git checkout main git pull origin main git checkout feature-footer git merge main CONFLICT (content): Merge conflict in index.html

📝 El archivo index.html muestra:

<body> <<<<<<< HEAD <div id="app"></div> <footer> <p>© 2026 Cafetería</p> </footer> ======= <header>...</header> <section id="menu">...</section> >>>>>>> main </body>

✅ Beto resuelve el conflicto:

# Beto edita el archivo manualmente, combinando ambas versiones git add index.html git commit -m "fix: resolver conflicto de merge con main" git push origin feature-footer

Merge a main exitoso

🎨 Ana - Toques finales

git checkout main git pull origin main git checkout -b feature-mejoras-css git commit -m "style: estilos del footer y títulos"

Merge a main - Proyecto completo!

4Resumen de Commits por Desarrollador

👨‍💻 Líder - 4 commits

✓ Estructura inicial
✓ Header HTML
✓ Estilos header
✓ Merge a main

👩‍💻 Ana - 3 commits

✓ Sección menú HTML
✓ Estilos menú
✓ Mejoras CSS finales

👨‍💻 Beto - 3 commits

✓ Footer HTML
✓ JavaScript teléfono
✓ Resolver conflicto merge

5Resultado Final - Página Web de la Cafetería

<!DOCTYPE html> <html lang="es"> <head> <meta charset="UTF-8"> <title>Cafetería El Buen Sabor</title> <link rel="stylesheet" href="styles.css"> </head> <body> <header> <h1>Cafetería El Buen Sabor</h1> <nav> <a href="#menu">Menú</a> <a href="#contacto">Contacto</a> </nav> </header> <section id="menu"> <h2>Nuestro Menú</h2> <div class="menu-item"> <h3>Café Americano</h3> <p>$2.50</p> </div> <div class="menu-item"> <h3>Cappuccino</h3> <p>$3.50</p> </div> </section> <footer> <p>© 2026 Cafetería El Buen Sabor</p> <p>Teléfono: <span id="phone">Cargando...</span></p> </footer> <script src="script.js"></script> </body> </html>
* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Arial, sans-serif; background-color: #f4f4f4; } header { background-color: #6F4E37; color: white; padding: 20px; text-align: center; } #menu { padding: 40px; max-width: 800px; margin: 0 auto; } h2 { color: #6F4E37; margin-bottom: 20px; } .menu-item { background: white; padding: 15px; margin: 10px 0; border-radius: 5px; } footer { background-color: #6F4E37; color: white; text-align: center; padding: 20px; margin-top: 40px; }
document.addEventListener('DOMContentLoaded', function() { const phoneElement = document.getElementById('phone'); phoneElement.textContent = '555-1234'; });

6🎓 Lecciones Clave para Juniors

✅ Siempre hacer git pull antes de empezar

Evita conflictos innecesarios al tener la versión más reciente del código.

⚠️ Los conflictos no son errores

Son Git diciendo "dos personas tocaron lo mismo, ¿cuál versión quieres?"

🔧 Para resolver conflictos

Busca <<<<<<<, decide qué código mantener, borra las marcas de Git, y haz commit.

💬 Comunicación es clave

Si Ana y Beto hubieran hablado, podrían haber evitado tocar index.html al mismo tiempo.