Aprende a trabajar con Git y GitHub como en un entorno profesional: crea ramas seguras, escribe commits semánticos, abre pull requests, resuelve conflictos y documenta tu trabajo sin perder control. Con ejemplos reales y un enfoque directo, verás cómo evitar errores comunes y ganar velocidad colaborando.
¿Qué son Git y GitHub y cómo se conectan?
Git es un controlador de versiones distribuido creado por Linus Torvalds en 2005 para gestionar el código fuente de forma segura y eficiente. GitHub no es Git: es la plataforma social donde hospedas repositorios Git, haces pull requests, revisiones y automatizaciones. Piensa en Git como la herramienta y en GitHub como el espacio colaborativo donde se ve y valida el trabajo.
Código local primero: el repositorio vive en tu máquina; sincronizas con remoto cuando haces push o pull.
Ramas como flujo de trabajo: la rama principal (main o master) es el tronco; cada cambio viaja en su propia rama.
GitHub como vitrina profesional: repos públicos, forks, issues y PRs muestran experiencia y proceso.
¿Cómo clonar e iniciar un repositorio con comandos clave?
Clonar un repo remoto.
git clone <URL-del-repo>
Inicializar un repo local y conectarlo a remoto.
git init
# agrega remoto si hace faltagit remote add origin <URL-del-repo>
Flujo básico para subir cambios.
# ver estadogit status
# preparar cambios (todo o archivo específico)gitadd.# o: git add path/al/archivo# commit con mensaje semánticogit commit -m "fix: ajustar margen en header"# subir a remoto (HEAD toma la rama actual)git push origin HEAD
Evita subir compilados: usa .gitignore para ignorar carpetas o archivos generados.
¿Cuál es el flujo de ramas recomendado para colaborar?
Trabaja siempre en ramas. La rama principal no recibe cambios directos. Crea una rama por objetivo: fix para correcciones, feature para funcionalidades. Así reduces riesgos, ordenas el historial y facilitas el code review.
¿Cómo creo y trabajo una rama segura?
Crear una rama descriptiva.
git checkout -b fix-header-size
Hacer cambios y añadir solo lo necesario.
gitadd src/styles/header.css
git commit -m "fix: remover margin que impedía 100% de ancho"
Sincronizar antes de subir: primero pull, luego push.
# trae cambios remotos antes de subirgit pull --rebase origin fix-header-size
# sube tu ramagit push origin HEAD
Mensajes claros con commits semánticos y uso de "conventional comments" mencionados: usa tipos como fix o feature, y describe qué y por qué.
Apóyate en IA del editor (p. ej., Cursor) para "generate commit message" cuando tenga contexto del cambio.
¿Cómo crear un pull request y pasar revisión?
Abre un pull request desde tu rama hacia main (o la rama base que use la empresa: main, master o incluso root).
Pide revisión: la persona revisor hace comentarios, aprueba o solicita ajustes.
Al aprobarse, haz Merge del PR. Si la rama principal está protegida, solo usuarios con permisos podrán fusionar.
Si te equivocas, usa Revert del PR: crea un nuevo PR que deshace ese cambio de forma limpia.
¿Qué conflictos y buenas prácticas debes dominar?
Los conflictos aparecen cuando dos ramas cambian las mismas líneas. Son normales. La clave es prevenir y saber resolverlos con criterio.
¿Cómo prevenir y resolver conflictos de forma práctica?
Antes de push: ejecuta git pull para alinear tu rama con remoto.
Si hay conflicto, GitHub muestra bloques en conflicto y qué difiere entre tu rama y main. Elige las líneas correctas, resuelve y confirma.
Verifica local tras el merge: sincroniza y valida en tu entorno.
Buenas prácticas que elevan tu flujo diario:
Protege la rama principal: obliga PRs y revisiones antes de fusionar.
Nomenclatura descriptiva en ramas: que expliquen el objetivo.
Historial como documentación: los commits y PRs cuentan la historia del código.
Issues para gestión: registra tareas y bugs, crea ramas desde ahí y referencia en PRs.
Revert seguro: deshace cambios problemáticos sin cirugías manuales.
Automatización con GitHub Actions: corre tests, lint y deploy al detectar cambios en main.
Ramas épicas para grandes features o microservicios: crea una rama intermedia (épica) y fusiona ramas pequeñas en ella antes de llevar todo a main. Reduce PRs gigantes y facilita revisiones por partes.
Forks para contribuir a proyectos ajenos: copia el repo a tu cuenta y trabaja con PRs hacia el original.
.gitignore bien configurado: no subas compilados ni artefactos.
Herramientas de apoyo: GitHub Desktop para visualizar cambios; editores como Cursor con panel de cambios y generación de mensajes; Copilot para code review automatizado; "Cloud Code" para asistir en refactors sobre el contexto del proyecto.
Credenciales: normalmente usas una cuenta por máquina; sobre múltiples cuentas, el ponente sugirió que podría aislarse con contenedores Docker por contexto, aunque no lo ha implementado.
Conexión segura: configura llaves SSH en GitHub y enlaza tu Git local al remoto.
Comenta cómo nombras tus ramas, qué estrategia usas para PRs grandes y qué automatizaciones te han ayudado más en tu día a día.