Tutorial Git - Instalación y Configuración Inicial

Tutorial Git – Instalación y Configuración Inicial

En este tutorial vamos a aprender sobre Git. Un gestor de versiones muy popular tanto en startups como en grandes empresas, usado por miles de programadores en todo el mundo. Creado por Linus Torvalds (el creador del Kernel Linux) y desde 2009 mantenido por Junio Hamano. Fue lanzado en Abril de 2005 como un sistema de control de versiones distribuidas de código abierto,  diseñado para manejar proyectos pequeños o muy grandes con rapidez y eficiencia.

Antes de continuar y a favor de que este tutorial realmente cumpla su objetivo te hacemos una sugerencia: si no estás familiarizado / da con los temas que aquí abordaremos te recomendamos conocer un poco más sobre:

¿Qué es un sistemas de control de versiones?

…en este artículo que te recomendamos (también nuestro) abordamos varios temas que creemos fundamentales conocer antes de adentrarse en el artículo actual. Hablamos un poco sobre la historia de los sistemas de control de versiones, la necesidad que motivó su existencia o lo que sería lo mismo: su función dentro de nuestros proyectos.

¿Por qué aprender Git?

Durante estos años Git se ha impuesto sobre su competencia (Subversion, CVS, Perforce y ClearCase) y esto ha sido producto de ciertas características técnicas que veremos a continuación pero también a su facilidad de uso. Git es multiplataforma, por lo que puedes usarlo y crear repositorios locales en todos los sistemas operativos más comunes: Mac, Windows o Linux. Otro aspecto que lo ha mantenido como la opción a elegir es que en la actualidad existen multitud de GUIs (Graphical User Interface o Interfaz de Usuario Gráfica) para trabajar con Git (yo personalmente uso Tower).

Los Tres Estados de Git

Si quieres que el resto de tu proceso de aprendizaje prosiga sin problemas, lo más importante a recordar acerca de Git son sus tres estados, estos hacen referencia a los tres principales en los que se pueden encontrar los archivos de nuestro proyecto: modificado (modified), preparado (staged) y confirmado (committed).

Las tres etapas de Git

Cuando estás trabajando en tu proyecto, vas modificando archivos (cada vez que modificas uno de ellos pasa al estado modificado). Cuando consideras que uno de los archivos modificados ya está terminado, llega el momento de comunicárselo al sistema de control de versiones. En ese momento este archivo pasa al estado preparado. Por último, cuando ya tienes todos tus archivos en estado preparado, llega el momento de confirmarlo, pasando a partir de ese momento al estado confirmado.

Dicho esto pudieramos definir estos estados:

  • Modificado: Has modificado el archivo pero todavía no lo has confirmado a tu base de datos.
  • Preparado: Has marcado un archivo modificado en su versión actual para que vaya en tu próxima confirmación.
  • Confirmado: Los datos están almacenados de manera segura en tu base de datos local.

La Línea de Comandos

Hay muchas formas diferentes de usar Git. Existen las herramientas originales de la línea de comandos e interfaces gráficas de usuario con diferentes capacidades que usan como backend el propio comando git. En nuestros tutoriales usaremos Git desde la línea de comandos que es como, a nuestro parecer, se aprende realmente, de modo que puedas interactuar con muchos de sus parámetros en las distintas situaciones y etapas que ya hemos comentado.

Dominar el sistema desde su base es fundamental, es necesario consolidar los parámetros en nuestra mente en lugar de estar aprendiendo a usar un programa gráfico determinado que bajo ciertas circunstancias ya no se sea una opción, momento donde tendríamos que tirar del terminal pero como no tenemos ni idea de los parámetros a usar pues nos veremos imposibilitados de seguir adelante o quizás perder un tiempo, en ocasiones limitado, buscando en Internet como hacer en la terminal lo que estamos acostumbrados a ejecutar mediante la interfaz gráfica.

También es bueno puntualizar que por un lado, la línea de comandos es el único lugar donde se pueden ejecutar todas las variantes del comando git ya que estamos interactuando directamente con él, solamente este tiene soporte para todos: la mayoría de las GUI sólo implementan ciertos subconjunto de funcionalidades más comunes básicamente por simplicidad, por lo que si dominamos la línea de comandos aparte de la libertad que tendremos para enfrentar cualquier situación, seguro también podremos manejarnos con soltura en la versión GUI. Además, si bien la elección de un cliente gráfico es una cuestión de varios factores técnicos en ocaciones también reside en el gusto personal, mientras que todos los usuarios tendrán siempre en cualquier plataforma la posibilidad de instalar las herramientas de línea de comandos.

Instalación de Git

Para comenzar nuestro aprendizaje necesitamos poder interactuar con Git y para esto primero tenemos que instalarlo, ya que aunque viene por defecto en macOS y en algunos sistemas GNU / Linux, usualmente esta versión no es la más actual. Como ya hemos comentado en otros artículos, Swift es un lenguaje de Código Abierto y aunque hoy podemos hacer uso de este en sistemas GNU / Linux en un futuro no muy lejano podremos hacer mucho más. Dicho esto entenderán que también incluya las órdenes de instalación tanto para los casos de Fedora y Ubuntu como de macOS.

Nota: En este tutorial vamos a asumir que el lector ya ha leído y aplicado nuestro artículo sobre cómo configurar un entorno de desarrollo en macOS.

macOS

Si en este punto abrimos el terminal y ejecutamos (git –version):

…obtenemos la versión que tenemos instalada en nuestro macOS. En este caso nos informa que es la 2.13.5, al momento de escribir este artículo la última versión estable es la 2.14.2, así que vamos a valernos del gestor de paquetes brew (ver nota anterior) para instalar esta última versión de Git al mismo tiempo que nos permitirá mantenerla actualizada. Esto último lo obtendremos por parte de Apple solamente cuando esté disponible una actualización del sistema operativo (macOS) a través de la App Store.

Proseguimos verificando la versión disponible de en los repositorios de brew (brew info git):

Comprobamos la versión de git disponibles en los repositorios de brew.

…claramente nos muestra que en efecto la última versión disponible en el repositorio es la última estable que nos informa el sitio oficial de Git. Así que proseguimos a instalarla (brew install git):

Instalamos git mediante el gestor de paquetes brew.

Luego de esto cerramos el terminal y lo volvemos a abrir para acceder a una nueva sesión de la terminal con las variables de entorno actualizadas, ya que si intentamos acceder a Git en este momento aún estaríamos interactuando con la versión que trae el sistema por defecto.

Volvemos a comprobar la versión (git –version):

…y ya contamos con la última versión estable instalada y lista para usar.

Fedora GNU / Linux

En Fedora, Git no viene instalado por defecto así que abrimos la terminal y lo primero que hacemos es actualizar la base de datos del gestor de paquetes dnf (dnf makecache):

…realmente este comando se ejecuta una sola vez al inicio de nuestro sistema, así que estoy asumiendo que no lo has hecho antes. Este comando lee las configuraciones de los repositorios y crea las bases de datos iniciales por cada repositorio, por lo que si ya has ejecutado este comando o has instalado aplicaciones mediante dnf sería más que suficiente ejecutar dnf update.

Verificamos la versión disponible (dnf info git-all):

En caso de que se pregunten por qué el paquete asociado con Git se llama git-all, pues resulta que el paquete git también existe, git-all es un meta-paquete que nos asegura la instalación de Git y resto de herramientas asociadas. También nos percatamos que no está disponible la última versión estable de Git, pero en este caso, nos quedaremos con esta ya que aunque pudiéramos instalar la última: ya sea compilándola o mediante los repositorios rawhide… estas alternativas están más allá del objetivo de este tutorial y lo harían excesivamente extenso.

Proseguimos instalando la versión disponible (dnf install git-all):

…asumiendo que todo finalizó correctamente ya podemos hacer uso de Git en Fedora.

Ubuntu GNU / Linux

En el caso de Ubuntu se pudiera decir que es más sencillo, aunque al igual que Fedora la versión disponible en los repositorios no es la más reciente. Si nos es indiferente la versión, digamos, que si tenemos disponible la penúltima, esto no será un problema muy grave en la mayoría de situaciones, con el siguiente comando podemos instalar Git (apt install git):

…pero si por el contrario preferimos la última versión estable (opción que recomiendo) primero tendríamos que añadir el siguiente repositorio NO OFICIAL pero recomendado en la propia página de Git (add-apt-repository ppa:git-core/ppa):

…tras este comando ejecutamos:

…ahora ya tenemos la base de datos del repositorio actualizado, finalizamos con la instalación de Git nuevamente haciendo uso de la orden que vimos arriba (apt install git):

Luego de todos estos pasos ya tenemos instalado Git en cualquiera de estos sistemas operativos donde vayamos a crear nuestros proyectos.

Configuración Inicial y Órdenes Básicas

Lo primero que tenemos que hacer es aplicar una pequeña configuración básica, una configuración necesaria al inicio y que luego no tendremos que volver a modificar… en la mayoría de los casos.

Git trae una herramienta llamada git config que te permite obtener y establecer variables de configuración, que controlan el aspecto y funcionamiento de Git. Estas variables pueden almacenarse en tres sitios distintos:

  • Archivo /etc/gitconfig: Contiene valores para todos los usuarios del sistema y todos sus repositorios. Si especificamos la opción –system a git config, lee y escribe específicamente en este archivo.
  • Archivo ~/.gitconfig: Específico a tu usuario. Puedes hacer que Git lea y escriba específicamente en este archivo pasando la opción –global.
  • Archivo config en el directorio de Git (es decir, .git/config) del repositorio que estés utilizando actualmente: Específico a ese repositorio. Cada nivel sobrescribe los valores del nivel anterior, por lo que los valores de .git/config tienen preferencia sobre los de /etc/gitconfig.

Lo primero que debemos hacer cuando instalamos Git es establecer nuestro nombre de usuario y dirección de correo electrónico. Esto es importante porque las confirmaciones de cambios (commits) en Git usan esta información, y es introducida de manera inmutable en los commits que envías:

De nuevo, sólo necesitas hacer esto una vez si especificas la opción –global, ya que Git siempre usará esta información para todo lo que hagas en ese sistema. Si quieres sobrescribir esta información con otro nombre o dirección de correo para proyectos específicos, puedes ejecutar el comando sin la opción –global cuando estés en ese proyecto.

Ahora que tu identidad está configurada, puedes elegir el editor de texto por defecto que se utilizará cuando Git necesite que introduzcas un mensaje. Si no indicas nada, Git usa el editor por defecto de tu sistema, que generalmente es Vi o Vim. Si quieres usar otro editor de texto, como mcedit, puedes hacer lo siguiente:

Comprobando la Configuración

Si quieres comprobar tu configuración, puedes usar el comando git config –list para listar todas las propiedades que Git ha configurado:

…esta salida en pantalla diferirá evidentemente para cada persona o sistema operativo. También puedes comprobar qué valor cree Git que tiene una clave específica ejecutando git config <clave>:

Obteniendo Ayuda

De más está decir que en los comentarios puedes hacer públicas tus dudas con respecto a lo que aquí hemos expuesto pero hay ocasiones donde tenemos pequeñas dudas o error de sintaxis que podemos solventar a través del propio comando Git o de las páginas de documentación del sistema (manpage). Hay tres formas de acceder a estas páginas para cualquier comando de Git:

Por ejemplo, puedes ver la página del manual para el comando config ejecutando:

git help config

…en esta imagen podemos ver la salida en pantalla del comando anterior.

Llegado este punto ya tendríamos Git configurado y listo para comenzar a usarlo en nuestros proyectos. Pero evidentemente esto no es todo, aún queda mucho por comentar y aprender sobre Git. En un próximo Tutorial Git veremos las órdenes básicas, aprenderemos a crear un repositorio y a clonar uno ya existente, haremos nuestro primer commit, consultaremos el historial de cambios, los revertiremos y mucho más… en general esos comandos más usados y por ende aquellos que tenemos que dominar mejor y sin lugar a dudas.

Falta aún mucho por aprender… Suscríbete a nuestra lista de correo mediante el formulario en el panel derecho y síguenos en nuestras redes sociales, mantente así al tanto de todas nuestras publicaciones futuras.

Espero que todo cuanto se ha dicho aquí, de una forma u otra le haya servido de aprendizaje, de referencia, que haya valido su preciado tiempo.

Este artículo, al igual que el resto, será revisado con cierta frecuencia en pos de mantener un contenido de calidad y actualizado.

Cualquier sugerencia, ya sea errores a corregir, información o ejemplos a añadir será, más que bienvenida, necesaria!