Primeros pasos con Git

Git para principiantes

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
git para principiantes 1
Git para principiantes

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 .
git para principiantes 2
Git para principiantes

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
git para principiantes 3
Git para principiantes

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:

conceptos fundamentales sobre git 4
Git para principiantes

¡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 para principiantes 5
Git para principiantes

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 tu.correo.aqui@ejemplo.com por el que corresponda en tu caso.

git config user.email "tu.correo.aqui@ejemplo.com"
git config user.name "Gabriel Cánepa"
git commit -m "Commit inicial del archivo 1"
git status
git para principiantes 6
Git para principiantes

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:

git para principiantes 7
Git para principiantes

El identificador de este commit es 55373dc. Junto al anterior aparece en el historial del repositorio hasta el momento:

git log
git para principiantes 8
Git para principiantes

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.

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.

¿Te resultó útil esta guía?

Imagen por defecto
Gabriel Cánepa

Gabriel trabaja actualmente como desarrollador full-stack en Scalar, una firma que se dedica a hacer valuaciones de empresas. Es Administrador de Sistemas certificado por la Fundación Linux y previamente ha escrito un gran número de artículos y contenidos técnicos sobre el tema para: DigitalOcean, Linode, Carrera Linux Argentina y Tecmint.

Tiene una certificación en programación de la Universidad de Brigham Young-Idaho, y está completando las carreras de programador y analista de sistemas en la Universidad Nacional de Villa Mercedes (UNViMe).

En su tiempo libre, Gabriel disfruta leyendo libros de Stephen R. Covey, tocando piano y guitarra, y enseñando conocimientos de programación a su dos hijas.