Skills que aprenderás
Convocatorias
No hay convocatorias abiertas ahora mismo, pero no te pierdas la oportunidad: guarda este curso y te avisamos en cuanto se abra una convocatoria.
Recursos
No hay recursos disponibles todavía para esta convocatoria
Curso de nivel intermedio para desarrolladores que ya dominan el flujo básico de Git y necesitan trabajar con eficacia en equipos que usan ramas, revisiones de código y automatización. El curso cubre la reescritura del historial con git rebase interactivo para limpiar commits antes de una PR, la aplicación selectiva de cambios con cherry-pick y stash, el diseño y justificación de una estrategia de ramas según el tipo de proyecto (Git Flow vs. trunk-based), el etiquetado de versiones con SemVer y la publicación de releases en GitHub, la configuración de hooks de cliente para automatizar validaciones en el flujo de commits, y la gobernanza del repositorio mediante branch protection rules y CODEOWNERS. Al finalizar, el participante será capaz de gestionar el historial, coordinar el flujo de su equipo y configurar las salvaguardas técnicas que garantizan la calidad del código en un repositorio compartido.
Al finalizar el curso, el participante será capaz de:
git rebase interactivogit cherry-pickgit stashgit tag y publicar releases en GitHubHistorial limpio con rebase interactivo git rebase -i: comandos pick, squash, fixup, reword y drop; cuándo reescribir el historial y cuándo no (regla de la rama compartida); diferencia entre merge y rebase en términos de historial lineal vs. historial con contexto temporal; escenario práctico: limpiar una rama feature antes de abrir PR
Gestión selectiva de cambios: cherry-pick y stash git cherry-pick <hash>: copiar un commit concreto de otra rama, casos de uso (hotfix en rama de release), resolución de conflictos en cherry-pick; git stash push -m "mensaje": guardar trabajo en curso para cambiar de contexto, git stash list, diferencia entre pop y apply, uso de drop para limpiar la pila
Estrategias de ramas en equipo Git Flow: ramas de larga duración (main, develop, feature/, release/, hotfix/*), cuándo es adecuado (ciclos de release discretos, versionado semántico); trunk-based development: integración frecuente en main, feature flags, ramas de corta duración; criterios de selección: frecuencia de despliegue, tamaño del equipo, estabilidad de requisitos, regulación; diagnóstico de problemas habituales (branches largas, PRs gigantes)
Tags, SemVer y releases en GitHub Versionado semántico (MAJOR.MINOR.PATCH): reglas de incremento según tipo de cambio; tags ligeros vs. tags anotados: diferencias y cuándo usar cada uno; git tag -a, git push origin <tag>; publicar un release en GitHub con notas estructuradas por tipo de cambio (features, bug fixes, breaking changes)
Hooks de cliente Qué son los hooks de Git y cómo funcionan (exit code como señal de rechazo); hooks de cliente principales: pre-commit (linting, tests rápidos), commit-msg (validación del formato del mensaje), pre-push (tests de integración); distribuir hooks al equipo: directorio .githooks/ versionado con core.hooksPath; Husky como alternativa en proyectos Node.js
Gobernanza del repositorio: branch protection y CODEOWNERS Branch protection rules en GitHub: PR obligatoria, número de aprobaciones requeridas, status checks, "Include administrators"; archivo CODEOWNERS: sintaxis de patrones de ruta, asignación de usuarios o equipos, activar "Require review from Code Owners" en la branch rule; verificación: intentar push directo y comprobar el rechazo
→ GIT01 — Control de versiones con Git (Iniciación, 8h)