Curso de Git/GitHub (Programa detallado)

Objetivo:

Al finalizar el curso el alumno será capaz de utilizar la herramienta de control de versiones GIT y la plataforma remota online GitHub.

Será capaz de ir guardando distintas versiones de sus propias aplicaciones, desde la versión inicial hasta la última, pasando por todas las intermedias que desee guardar, para poder recuperar cualquiera de ellas en algún momento que lo necesite.

Asimismo, podrá integrarse en un grupo de usuarios que desarrollen entre todos la misma aplicación simultáneamente, de forma que cada uno desarrolle una parte de la misma sin afectar de forma indeseada al trabajo de los demás.

Dirigido a:

Creadores de aplicaciones de cualquier tipo (web, de escritorio…) con o sin conocimientos de lenguajes de programación (programadores, diseñadores gráficos…) que necesiten salvaguardar un historial de dichas aplicaciones.

Requisitos:

El alumno debe tener algún conocimiento en el desarrollo de aplicaciones informáticas y debe contar con un ordenador con sistema operativo Windows (al menos en su versión 7) con conexión a internet y con una memoria recomendada de al menos 4 GB de RAM.

PROGRAMA DEL CURSO

1.- Iniciando en GIT

Objetivo

El objetivo de esta unidad, es:

  • Entender lo que es un Sistema de Control de Versiones, y qué tipos hay.
  • Ser capaz de instalar e inicializar GIT en Windows tanto por línea de comandos como con los clientes gráficos Eclipse, Sourcetree, Gitkraken, Github Desktop y Git GUI.

Contenido

  1. Iniciando en GIT
    1. Índice de la unidad
    2. Introducción    
    3. Diferencias entre Sistemas de Control de Versiones centralizados y distribuidos
    4.  Historia de GIT
    5. Instalación de Git
    6. Inicializando GIT
    7. Otros clientes gráficos
    8. Hemos aprendido

2.- Creando nuevas versiones (parte I)

Objetivo

Al finalizar esta unidad, el alumno:

  • Aprenderá a utilizar las instrucciones para salvaguardar en el tiempo los progresos realizados en sus aplicaciones, tanto por comandos GIT de consola como usando el editor gráfico.

Contenido

  1. Creando nuevas versiones (parte I)
    1. Introducción
    2. Comandos para subir al repositorio
    3. Hemos aprendido

3.- Creando nuevas versiones (parte II)

Objetivo

Al finalizar esta unidad, el alumno:

  • Sabrá reescribir los comandos de GIT de forma abreviada pero manteniendo su total operativa.
  • Conocerá y sabrá construir los ficheros .gitignore y .gitattributes.
  • Conocerá el tratamiento que da GIT a los ficheros grandes (LFS).
  • Sabrá usar los filtros de GIT.

Contenido

  1. Creando nuevas versiones (parte II)
    1. Construir alias
    2. Fichero .gitignore
    3. Fichero .gitattributes
    4. Filtros
    5. Hemos aprendido

4.- Accediendo a versiones anteriores

Objetivo

Al finalizar esta unidad el alumno:

  • Aprenderá a recuperar el contenido de la aplicación en el momento temporal que desee, eligiendo un contenido de los que estuvieran previamente salvaguardados (checkout) .
  • Podrá decidir si mantener o eliminar el contenido añadido entre esos dos momentos temporales (el elegido y el actual). En caso de decidir eliminar ese contenido intermedio, podrá asímismo elegir si desea que quede constancia en el historial de esa eliminación (revert) o no (reset).
  • Será capaz de hacer esto tanto con comandos GIT de consola como usando el editor gráfico.

Contenido

  1. Accediendo a versiones anteriores
    1. Introducción
    2. git checkout
    3. git reset
    4. git revert
    5. Hemos aprendido

5.- Ramas

Objetivo

Al finalizar esta unidad, el alumno aprenderá a:

  • Utilizar los comandos para crear ramas en sus aplicaciones,
  • Incluir cambios en dichas ramas, que no afecten a la rama principal de la aplicación mientras no sean fusionadas con ésta.
  • Fusionar los cambios de las ramas creadas con la rama principal, usando los comandos merge y rebase, así como con el editor gráfico.
  • Aplicar cambios hechos en una rama, en otra distinta, con el comando cherry-pick.

Contenido

  1. Ramas
    1. Introducción
    2. git branch
    3. git merge
    4. git rebase
    5. git rebase (interactivo)
    6. git cherry-pick
    7. git merge --squash
    8. Hemos aprendido

6.- Repositorios remotos locales (parte I)

Objetivo

Al finalizar esta unidad, el alumno aprenderá a:

  • Crear copias de repositorios remotos con el objeto de trabajar en grupo con otros usuarios.
  • Compartir modificaciones de la aplicación común con el resto de desarrolladores, enviando las suyas y recibiendo las de los demás.
  • Será capaz de hacer esto tanto con comandos GIT de consola como usando el editor gráfico.

Contenido

  1. Repositorios remotos locales
    1. Comandos
    2. Uso de un repositorio central compartido
    3. Hemos aprendido

7.- Repositorios remotos locales (parte II)

Objetivo

Al finalizar esta unidad, el alumno aprenderá a:

  • Ver que es importante obtener los commits realizados por el resto de desarrolladores antes de compartir los commits propios con ellos.
  • Resolver los conflictos que se producen cuando varios desarrolladores modifican el mismo código.
  • Valorar la importancia de no destruir modificaciones que ya hayan sido compartidas con los demás usuarios.
  • Compartir commits de ramas distintas de la rama principal.
  • Será capaz de hacer esto tanto con comandos GIT de consola como usando el editor gráfico.

Contenido

  1. Repositorios remotos locales (parte II)
    1. Dinámica de trabajo
    2. Conflictos
    3. Evitar destruir commits
    4. Compartiendo ramas
    5.  Buenas prácticas de trabajo en Git
    6. Hemos aprendido

8.- Repositorios remotos online. GITHUB básico

Objetivo

Al finalizar esta unidad, el alumno aprenderá a:

  • Utilizar la web de GITHUB.
  • Publicar y compartir repositorios propios en internet.
  • Descargarse los repositorios públicos de GITHUB que le interesen y realizar aportaciones de código para ofrecer mejoras o correcciones a repositorios de otros usuarios.
  • Trabajar en colaboración con otros usuarios usando GITHUB como lugar donde almacenar el repositorio central compartido.
  • Será capaz de hacer esto tanto con comandos GIT de consola como usando el editor gráfico.

Contenido

  1. Repositorios remotos online. GITHUB básico
    1. Introducción
    2. Casos prácticos para trabajar con GITHUB
    3. Hemos aprendido

9.- Repositorios remotos online. GITHUB avanzado (parte I)

Objetivo

Al finalizar esta unidad, el alumno aprenderá a:

  • Realizar la comunicación con GITHUB vía SSH.
  • Publicar sus aplicaciones en internet usando GitHub Pages.
  • Crear y utilizar los tags ligeros y anotados en GIT y GITHUB.
  • Crear y utilizar los issues, milestones, labels y proyectos de GITHUB.

Contenido

  1. Repositorios remotos online. GitHub avanzado (parte I)
    1. Uso de las claves SSH
    2. GitHub Pages
    3. Tags y Releases
    4. Issues, Milestones y Proyectos
    5. Hemos aprendido

10.- Repositorios remotos online. GITHUB avanzado (parte II)

Objetivo

Al finalizar esta unidad, el alumno aprenderá a:

  • Crear y utilizar los hooks de GIT y webhooks de GITHUB.
  • Crear y aplicar parches de GIT.
  • Trabajar en GIT con Gitflow.
  • Conocer otras alternativas a GITHUB como plataforma de repositorios online.

Contenido

  1. Repositorios remotos online. GitHub avanzado (parte II)
    1. Hooks y Webhooks
    2. Gitflow
    3. Parches en Git
    4.  Firmar commits
    5. Otros repositorios online
    6. Hemos aprendido