Git y GitHub

Favio Vázquez. Instituto de Ciencias Nucleares - UNAM.

Ciudad de México, 07 de septiembre de 2016.

Objetivos

  • Entender el flujo de trabajo con Git y GitHub.
  • Familiarizarse con la plataforma de GitHub.
  • Instalar y entender lo básico de Git (en terminal).
  • Instalar un cliente de Git y aprender a utilizarlo.
  • Practicar con un caso real el flujo de trabajo con Git y GitHub.

Instalaciones

  • Git:
:$ apt-get install git
:$ git --version
  • SmartGit:

http://www.syntevo.com/smartgit/download

Creemos una cuenta

Características principales de GitHub

Creemos y exploremos un repositorio

Issues:

Branches (Creemos uno).

Crear branches es una parte esencial de usar Git y GitHub. Y es muy fácil. Cuando creamos un branch, estamos creando una copia identica del proyecto en ese punto del tiempo, que está completamente separada del branch master. Esto mantiene a tu código en master seguro mientras experimentas y arreglas issues.

Creando archivos en GitHub

  • Se pueden crear nuevos archivos directamente en la interfaz web.
  • Luego que terminemos de editar el archivo, hacemos un "commit" de los cambios.
  • Incluímos siempre un mensaje a tu commit, y nos asegurams que estamos en el branch correcto antes de hacer el mismo.

Creemos el archivo Prueba.md

Pull Requests (PR)

Un PR es una petición para hacer "merge" de un branch con otro. Se usan para discutir los cambios hechos en el branch, y para continuar haciendo cambios hasta que el branch esté completo y el equipo esté de acuerdo en que puede hacerse merge. Son la forma de llevar el código, documentación, o de lo que trate el repo, al branch master y mantenerlo actualizado.

Haciendo merge a un Pull Request

  • Para hacer merge a nuestro branch al branch master, debemos hacer click en el botón Merge Pull Request en la vista de conversación.
  • Debemos usar la palabra Fixes (o closes, o close..) seguido por # y el número del Issue para cerrar el Issue al mismo tiempo que el Pull Request. Lista completa de palabras para cerrar PR: click aquí.
  • Luego de que el PR haya sido aceptado y cerrado, se puede borrar el branch donde se estaba trabajando ya que no lo necesitaremos más.

Git

Git es un programa que sirve para rastrear los cambios en las versiones de un programa o proyecto ("version control system", o VCS). Se puede usar desde la línea de comandos o desde un cliente; permite chequear cambios en cualquier punto de la historia, resetear a algún punto específico del historial, tener desarrollos independientes, etc. Es código abierto. Fue inventado por Linus Torvalds en el 2005 para el manejo y desarrollo del kernel de Linux. En pocas palabras, es un manejador de repositorios.

Cuando usemos la terminal, estaremos trabajando con Git. Git es el sistema de versiones de control que GitHub utiliza tras bambalinas. GitHub añade funcionalidades como pull request e issues. Pero lo que hemos visto de crear branches o hacer commits son funcionalidades de Git.

Niveles de configuración de Git

  • --system - Afectan a todo el sistema, y a todos los usuarios de la computadora.
  • --global - Configuraciones a nivel de usuario, solo para el usuario activo en el momento.
  • --local -Configuraciones a nivel del repositorio. Solo aplican al repositorio en que se hacen.

Para ver que configuraciones tenemos activas:

:$ git config --list

Configurando nombre de usuario y correo

:$ git config --global user.name "<nombre_completo>"
:$ git config --global user.email "<email>".

Manejar los espacios en blanco con Autocrlf

Diferente sistemas manejan los finales de línea y los espacios entre líneas de forma diferente. Si abrimos un archivo en otro sistema que no tiene activado el autocrlf, Git hará cambios al archivo basándose en la manera en l que ese sistema maneja ese tipo de archivos (algo no deseado).

:$ git config --global core.autocrlf

Clonando repositorios

La magia de los sistemas de versiones de control

Ahora comenzaremos a trabajar localmente, como se debe hacer, y cuando estemos satisfechos con nuestros aportes o cambios, haremos "push" al branch para que se vea reflejado el cambio en GitHub, y sea visible por todos los participantes.

Todo esto que explicaremos a continuación puede hacerse desde la terminal, pero con un poco más de esfuerzo.

SmartGit

Para hacernos la vida fácil, viene SmartGit al rescate. Un cliente de Git para Windows, Mac y Linux, muy fácil de utilizar, robusto, confiable y en constante actualización.

Hora de practicar y usar SmarGit con GitHub