30 horas · 8 semanas · Presencial / Online

Curso Completo de Git

Control de versiones de cero a avanzado — demostraciones que reproduces en tu terminal.

Git es la herramienta de control de versiones que se da por supuesta en cualquier equipo de desarrollo. Este curso te lleva desde el primer repositorio hasta la colaboración en una forja y los laboratorios avanzados, con demostraciones reproducibles desde un repositorio vacío y criterios de revisión en cada unidad.

Empezar por el Módulo 1 →
Aprende. Crea. Automatiza. Destaca.
Curso Completo de Git — SASE Formación

¿Qué vas a aprender?

  • Entender qué problema resuelve un VCS y por qué Git no es GitHub
  • Dominar el modelo de tres zonas: directorio de trabajo, staging y repositorio
  • Crear commits atómicos y leer el historial con log y diff
  • Trabajar con ramas, integrarlas y resolver conflictos con criterio
  • Sincronizar con remotos y colaborar mediante pull requests en GitHub
  • Recuperar trabajo con restore, revert, stash y reflog sin operaciones destructivas
  • Publicar versiones etiquetadas y entregar un proyecto documentado
  • Aplicar laboratorios avanzados: rebase, cherry-pick, bisect, worktrees, submódulos, LFS, hooks y CI/CD

Índice general del curso

1 Tronco · Arranque

Qué problema resuelve Git

Explicar qué problema resuelve un VCS, diferenciar centralizado de distribuido e identificar qué aporta Git sin confundirlo con GitHub.

  • El problema de las copias manuales de archivos
  • Qué es un sistema de control de versiones (VCS)
  • VCS local, centralizado y distribuido
  • Git frente a GitHub, GitLab y Bitbucket
  • Demostración: un repositorio existe en tu equipo
🚀 Analizar un caso real de equipo sin control de versiones
2 Tronco · Arranque

Configuración inicial de Git

Configurar y comprobar la identidad que Git incluirá en los commits, distinguiendo configuración global y local.

  • Instalación y comprobación de la versión
  • user.name y user.email: la identidad del commit
  • Configuración global frente a local por proyecto
  • init.defaultBranch, editor y otras opciones
  • Verificar la configuración con git config --list
🚀 Ejercicio autocorregible de configuración
3 Tronco · Ciclo local

Modelo mental y fundamentos locales

Crear un repositorio local, identificar el estado de sus archivos y registrar un cambio mediante un commit.

  • Las tres zonas: directorio de trabajo, staging y repositorio
  • git init y el directorio .git
  • git status como brújula de cada tarea
  • git add: preparar cambios de forma selectiva
  • git commit, git log y git diff
  • Estados de un archivo: untracked, modified, staged, committed
🚀 Repositorio con dos commits atómicos explicados
4 Tronco · Ciclo local

Archivos, restore y .gitignore

Gestionar renombres y eliminaciones, recuperar un archivo según su estado y excluir archivos no versionables.

  • Descartar un cambio no preparado con git restore
  • Deshacer un git add con restore --staged
  • Renombrar y eliminar archivos: git mv y git rm
  • Ignorar archivos con .gitignore
  • Patrones básicos: dependencias, secretos, registros
🚀 Definir un .gitignore antes de añadir archivos generados
5 Tronco · Colaboración

Ramas, remotos y colaboración

Crear una rama de tarea, integrar su trabajo resolviendo un conflicto y sincronizarla con un remoto sin confundir Git con una forja.

  • Qué es una rama: una referencia móvil a commits
  • git switch y git branch
  • Integración con git merge
  • Resolución de conflictos paso a paso
  • Remotos: fetch, pull y push
  • Pull requests en GitHub y revisión de contribuciones
🚀 Resolver un conflicto entre dos ramas y publicarlo
6 Tronco · Corrección y entrega

Recuperación segura

Elegir entre restore, revert, reset, stash y reflog según el estado del trabajo y el riesgo asumido.

  • Orden seguro de decisión ante un error
  • git revert: corregir sin reescribir el remoto
  • git stash: aparcar trabajo sin confirmar
  • git reset y por qué --hard es la última opción
  • git reflog: recuperar una referencia perdida
🚀 Recuperar una rama perdida sin operaciones destructivas
7 Tronco · Corrección y entrega

Tags, versiones y entrega

Crear, verificar y publicar una versión etiquetada.

  • Tags ligeros y tags anotados
  • Semantic Versioning como convención
  • Publicar un tag en el remoto
  • Verificación con git show y git ls-remote --tags
🚀 Publicar un tag anotado v0.1.0 con estado limpio
8 Tronco · Cierre

Proyecto final colaborativo

Entregar en equipo un repositorio con una versión etiquetada y documentada, explicando el historial y las decisiones de recuperación.

  • Organización del equipo y reparto de ramas
  • Flujo de trabajo con pull requests en GitHub
  • Documentación: README y mensajes de commit
  • Rúbrica de evaluación
  • Defensa del historial y de una decisión de recuperación
🚀 Repositorio en equipo con versión etiquetada y documentada
9 Laboratorio avanzado

Laboratorio: rebase, cherry-pick y bisect

Reorganizar con seguridad el historial de una rama no publicada y localizar el commit que introdujo una regresión.

  • Rebase interactivo en una rama privada
  • Actualizar la base de una rama
  • Ordenar y fusionar commits (squash, fixup)
  • Trasplantar un commit concreto con cherry-pick
  • Búsqueda binaria de regresiones con git bisect
  • Automatización con bisect run
🚀 Localizar una regresión y limpiar el historial de la rama
10 Laboratorio avanzado

Laboratorio: worktrees, submódulos y LFS

Trabajar con varias ramas a la vez y manejar repositorios grandes o con dependencias y binarios.

  • git worktree: dos ramas abiertas simultáneamente
  • Submódulos: incluir otro repositorio como dependencia
  • Git LFS: versionar archivos binarios grandes
  • sparse-checkout y partial clone
  • Mantenimiento con git maintenance
🚀 Preparar una copia ligera de un repositorio grande
11 Laboratorio avanzado

Laboratorio: hooks, seguridad y CI/CD

Diferenciar validación local, control del servidor y automatización de la forja; configurar un hook y responder a una credencial expuesta.

  • Hooks locales en .git/hooks
  • Validación antes del commit y del push
  • Qué hacer si se publica un secreto por error
  • Protección de ramas en GitHub
  • Integración continua con GitHub Actions
🚀 Hook de validación + workflow de CI en GitHub
12 Laboratorio avanzado

Laboratorio: Git interno e IA

Explicar qué guarda Git realmente y tratar una propuesta de IA como una contribución que exige aislamiento, revisión y trazabilidad.

  • Objetos de Git: blob, tree, commit y tag
  • Inspección con git cat-file
  • Cómo se almacena el repositorio
  • Aislar cambios propuestos por IA en una rama
  • Revisión con diffs y trazabilidad de la autoría
🚀 Revisar una contribución generada con IA usando ramas y diffs

Proyecto Final · Cierre del tronco

Integrar el itinerario troncal en un repositorio colaborativo real, evaluado con rúbrica y defendido por cada participante.

Repositorio colaborativo en equipo

Proyecto en GitHub con ramas por persona, pull requests revisadas, conflictos resueltos y una versión etiquetada.

Rescate de un repositorio en mal estado

Partir de un repositorio con historial desordenado y errores publicados, y sanearlo sin operaciones destructivas.

Flujo de trabajo documentado para un equipo

Definir y demostrar la estrategia de ramas, la política de revisión y la automatización de CI de un equipo.

¿Quieres seguir formándote?

Descubre todos los cursos de SASE Formación.

Ver cursos de la academia →
Síguenos