Git tutorial
La mayoría de los proyectos de desarrollo de software es llevada a cabo por personas ubicadas en distintos países y zonas horarias. ¿Te has preguntado alguna vez cómo se pueden coordinar las tareas trabajando de esta manera? Enviar archivos comprimidos por correo electrónico o almacenar versiones separadas con nombres diferentes puede volverse molesto y difícil de sostener en el tiempo. Por ese motivo, los sistemas de control de versiones (VCS por sus siglas en inglés) se han convertido una herramienta indispensable en la actualidad. En esta guía aprenderás los primeros pasos de Git para principiantes, uno de los VCS más utilizados hoy en día.
Un VCS como Git hace posible guardar los cambios de uno o más archivos en el tiempo para poder volver atrás si es necesario. En otras palabras, mantiene un registro ordenado de todas las actividades de colaboración en un proyecto.
Antes de comenzar
Comprobar que Git esté instalado
Para comenzar, verifica que Git esté disponible en tu sistema. Por lo general, este es el caso en cualquier distribución moderna de GNU/Linux.
git --version
Aunque puedes instalar versiones más recientes, la que está incluida en los repositorios es más que suficiente para los propósitos de esta guía.
Crear un repositorio
El conjunto de archivos y directorios que componen un proyecto recibe el nombre de repositorio. El primer paso consiste en indicarle a Git que deseamos llevar cuenta de los cambios que hagamos en una determinada carpeta. En este ejemplo, utilizaremos una nueva llamada aprender-git:
mkdir aprender-git
cd aprender-git
A continuación, inicializa el repositorio:
git init .
A medida que pase el tiempo, el subdirectorio .git contendrá el historial de cambios del proyecto y las configuraciones correspondientes. Si llegas a eliminar este directorio, perderás esta información. Por esa razón, se crea como un directorio oculto y debe mantenerse así para evitar que alguien lo borre accidentalmente.
Agregar archivos al repositorio
Simplemente agregar archivos dentro de una carpeta no hace que Git lleve cuenta de los cambios que hagamos en ellos. Antes de eso es necesario agregarlos al área del repositorio donde se registran los cambios, conocida como staging. De esta forma, podemos efectuar cambios en el contenido pero sin agregarlos al historial hasta que estemos listos para hacerlo.
Para ilustrar, genera dos archivos vacíos llamados archivo1.txt y archivo2.txt y luego observa el estado del repositorio:
touch archivo1.txt
touch archivo2.txt
git status
Las dos primeras líneas introducen dos nuevos conceptos muy importantes. La primera de ellas indica que nuestra ubicación actual es la rama (branch) master. En Git, las ramas son líneas independientes de desarrollo en las que trabajamos sin modificar el producto principal. A esta altura solamente disponemos de la rama master ya que no hemos creado ninguna otra. La segunda línea nos dice que no hay commits todavía, o que no hemos tomado ninguna foto del estado del repositorio.
Un commit es un snapshot (o instantánea) del repositorio en un momento dado.
Asimismo, ambos archivos aparecen como untracked. Esto significa que Git detectó archivos en el directorio que todavía no agregamos al área de observación.
Ahora agrega contenido a ambos archivos pero solamente añade archivo1.txt al área de staging:
echo "Soy el archivo 1" > archivo1.txt
echo "Soy el archivo 2" > archivo2.txt
git add archivo1.txt
git status
En este punto el estado del repositorio nos dice que hay un nuevo archivo. Esto significa que Git recién lo incorpora a la observación:
¡Muy bien! Ya estamos casi listos para comenzar a tomar instantáneas del repositorio.
Configurar Git
Si intentamos realizar nuestro primer commit veremos el siguiente aviso:
git commit -m "Commit inicial del archivo 1"
Git nos dice que todavía no sabe quién quiere tomar la instantánea. Esta información es necesaria para poder llevar cuenta de las acciones en el repositorio.
Si bien la opción --global
hace posible que establezcamos la identidad para todo el sistema, omítela por el momento para hacerlo en el repositorio actual solamente. Recuerda reemplazar [email protected]
por el que corresponda en tu caso.
git config user.email "[email protected]"
git config user.name "Gabriel Cánepa"
git commit -m "Commit inicial del archivo 1"
git status
La primera instantánea del repositorio también se conoce como la raíz, a la que Git le asignó el hash d11b583. Esta identificación será diferente en tu caso pero el significado es el mismo.
Realizar un nuevo commit
Ahora hagamos lo mismo en archivo2.txt (agreguémoslo al área de staging y realicemos otro commit):
git add archivo2.txt
git commit -m "Commit inicial del archivo 2"
git status
El estado del repositorio ahora muestra que no hay otros archivos o modificaciones recientes que agregar a otra instantánea:
El identificador de este commit es 55373dc. Junto al anterior aparece en el historial del repositorio hasta el momento:
git log
En la imagen de arriba, 1 y 2 son los mensajes de los commits que realizamos. También observamos el hash entero de cada instantánea antes del autor y la fecha.
Video Tutorial:
Para terminar
En esta guía aprendiste a crear un repositorio, realizar cambios en archivos, tomar instantáneas y ver el historial. Este es el comienzo en el uso de un sistema de control de versiones como Git. Para continuar con el tema, en el próximo artículo aprenderás a crear ramas, realizar cambios en cada una, incorporarlos al producto principal y también deshacer algunos de ellos cuando sea necesario.