Fork me on GitHub

Curso de git avanzado

Modalidad presencial

Ficha técnica del curso

Objetivos

  • Entender cómo funciona git, el modelo de objetos y la estructura de datos que gestiona los commits de un repositorio
  • Entender qué son las ramas en git y su funcionamiento. Aprender a utilizarlas para trabajar en equipo
  • Entender qué es un repositorio remoto y aprender el funcionamiento del comando push
  • Aprender y poner en práctica diferentes flujos de trabajo en git

¿A quién va dirigido? Equipos de desarrollo con experiencia previa en el uso de git.

Duración: 30 horas

¿Subvencionable a través de FUNDAE?

Cliente de git: Sourcetree y línea de comandos

Temario

Tema 1: ¿qué es un commit?

  • Git sólo sabe hacer tres cosas...
  • ¿Qué pasa cuando haces un commit?
  • La carpeta .git/objects
  • El indice de git, el área de trabajo y el repositorio
  • El flujo de trabajo más sencillo para empezar a trabajar con git

Tema 2: Tags y ramas

  • ¿Qué es un tag?
  • Etiquetando commits con tags
  • Diferentes usos que se le pueden dar a los tags
  • Referencias: entendiendo qué es una rama en git
  • HEAD y el comando checkout
  • Detached HEAD
  • Integración de ramas con merge
  • Flujos de trabajo con ramas

Tema 3: Trabajando con referencias y el grafo de git

  • El grafo de git: entendiendo cómo funciona la estructura de datos que almacena nuestros commits
  • El reflog: recuperando commits
  • ¿Cómo funciona el recolector de basura?
  • El comando reset a fondo (mixed, soft y hard)
  • Borrado de commits... de verdad

Tema 4: Repositorios remotos

  • Qué es y cómo funciona un repositorio remoto
  • El comando push
  • Trabajando en equipo
  • Permisos de ramas y ramas protegidas

Tema 5: El comando push a fondo

  • El comando push no es lo que parece...
  • Sintaxis completa del comando push
  • Entendiendo el comando push -f

Tema 6: Pull requests

  • ¿Qué es un pull request?
  • Hacer pull-requests de manera "artesana"
  • Pull requests a través de github / bitbucket / gitlab
  • Ventajas e inconvenientes del uso de pull requests
  • Code reviews a través de github / bitbucket / gitlab

Tema 7: Rebase

  • ¿Qué es el comando rebase?
  • Integración de ramas con rebase
  • Ventajas e inconvenientes de rebase frente a merge

Otros temas

Contenido adicional que se imparte en función de las necesidades del equipo

  • Trabajo en equipo con git-flow
  • Migración de repositorios de SVN a git
  • Gestión de depencias con git-submodules y git-subtree
  • Visual Studio como cliente de git
  • Eclipse como cliente de git