Imagen de perfíl Luciano Vergara

Luciano Vergara

SOFTWARE DEVELOPER

110%

Adicción al café

6 años

De experiencia

$15

USD/hr

Cómo utilizar GIT desde la consola: Guía básica

Posteado el 14 septiembre, 2018

El objetivo de este post es registrar en el blog para aquellas personas que arrancan con GIT o aquellas personas que ya utilizan GIT hace mucho con alguna interfaz gráfica de usuario (Github Desktop, Sourcetree, Gitkraken, etc) y que quieren empezara usar definitivamente la consola, la verdad es que no es tan complejo como parece realizar las operaciones básicas que utilizas en tu interfaz gráfica habitualmente y hoy en este artículo te lo voy a demostrar.

Yo se que no es lo ideal arrancar a usar una tecnología como GIT con una interfaz gráfica de usuario, pero la realidad es que la mayoría de nosotros lo ha hecho así. Muchos de nosotros terminamos haciéndonos dependientes de cualquiera de estas aplicaciones que facilitan bastante pero, a su vez, la mayoría son bien“buggy”.

Hace ya mas de un año que me mudé de manera definitiva a Linux. Estoy usando OpenSUSE, que fue la distro que encontré mas estable y que mas se adapta a lo que yo busco, pero esa es otra historia; El tema es que no pude encontrar una buena UI de GIT para Linux, lo último que había usado en Windows era Sourcetree, el mítico programa desarrollado y mantenido por la gente de Atlassian, pero este software no está disponible para Linux.

Finalmente como no me gustaron las opciones que probé me decidí a mudarme directamente a la consola y me di cuenta que con 5 o 6 comandos básicos es posible hacer todo lo que hacía con las interfaces gráficas. A continuación te presento los comandos principales, cómo usarlos, y algunos ejemplos:

Iniciar un repositorio nuevo:

Fácil, lo hacemos con el comando:

Clonar un repositorio:

Crear un commit:

Esto consiste en dos partes, añadir los archivos que estarán incluidos en el commit y luego crear el commit en si con un mensaje descriptivo:

Agregamos archivos al commit con el comando

Si deseamos agregar todos los archivos modificados lo podemos hacer con el comando:

Para crear el commit se utiliza el comando:

Si es el primer commit que creas con esta instalación de GIT te va a pedir que te identifiques. Lo haces con los siguientes dos comandos por única vez:

Y listo, ya podrás ejecutar el comando de commit en todos tus repositorios.

Enviar los datos al repositorio remoto

El comando para enviar los datos a un origen, lo que habitualmente llamamos “hacer push” es el siguiente:

El nombre_origin se refiere al nombre que le pusiste al repositorio remoto, se pueden agregar múltiples orígenes y repositorios remotos. Habitualmente, si clonamos el repositorio desde alguna URL, el repositorio remoto predeterminado se llama “origin”. El nombre_branch se refiere al nombre de tu rama de trabajo, la rama por predeterminada suele llamarse “master” entonces por ejemplo el comando será algo así:

Si es la primera vez que haces push, puede que la consola de GIT te pida que indiques que rama del origen sigue la rama de tu repositorio. Normalmente, si somos personas con sentido común, la rama que va a seguir tu repositorio local va a ser la que tenga el mismo nombre en el origin. La consola te va a hacer una sugerencia del comando que será algo así:

Normalmente es suficiente con escribir este comando de sugerencia para poder realizar el push correctamente.

Traer los datos del repositorio

Este comando equivale a lo contrario del comando anterior, lo que habitualmente llamamos “hacer pull”. El comando es el siguiente:

Las variables tienen exactamente el mismo significado que para el comando anterior. No hay mucho mas que explicar sobre el pull. Solamente hay que tener en cuenta que si nosotros realizamos modificaciones puede que al hacer un pull nos pida solucionar conflictos de merge del código. Para entender como solucionar esto, por favor, ver la sección Hacer merge de branches, mas abajo.

Moverse entre branches

Es fácil moverte de un branch a otro, sencillamente lo hacemos como se muestra a continuación, el comando se explica por si solo.

Crear un nuevo branch

Para crear un nuevo branch también lo hacemos con el comando checkout, solo hace falta que te pares sobre la rama ya existente desde la cual va a partir tu nuevo branch (con el comando anterior)  y uses el checkout de la siguiente forma:

Descartar los cambios realizados

Para descartar todos los cambios realizados en el directorio de trabajo, puedes ejecutar los siguientes dos comandos primero uno y luego el otro:

Eliminar un branch

Primero que nada, para ejecutar la eliminación de un branch no puedes estar parado sobre dicho branch. Muévete usando el comando checkout explicado anteriormente a cualquier otro branch de tu reposotorio y a continuación puedes utilizar el siguiente comando para suprimir el branch deseado:

Hacer merge de branches

El merge de branches nos sirve para fusionar los cambios de una rama de código sobre otra. Para fusionar los cambios de un branch sobre otro tienes que hacer exactamente lo siguiente:

Te paras sobre el branch destino del merge (utilizando el comando checkout explicado mas arriba) y ejecutas el comando:

Depende la cantidad de cambios realizados el sistema puede o no abrirte el editor integrado VIM para agregar un mensaje de commit del merge. Existe un chiste muy famoso sobre VIM, la leyenda dice que una vez que entras no puedes salir nunca mas, haciendo referencia a lo poco amigable para el usuario que es este editor de consola. Pero no enloquezcas, si el editor se abre debes hacer exactamente lo siguiente:

Presiona ESCAPE y escribe :wq para luego presionar finalmente Enter. Esto va a guardar los cambios y salir inmediatamente. Listo, pasaste la prueba y tu código está fusionado.

Otra cosa que puede pasar es que existan conflictos en algunos archivos. Esto pasa cuando otro developer modificó la misma linea de código que tu en uno de los branches a fusionar. En ese caso solo debes prestar atención a qué archivos te indica la consola que presentaron conflicto. Debes dirigirte a dichos archivos uno por uno, buscar las lineas de GIT que muestran conflicto, revisar el código para solucionar los problemas. Finalmente realizas un commit con los cambios.

Las lineas que presentan conflicto se verán parecidas al siguiente ejemplo:

Verificar el estado actual del repositorio

Esto nos sirve para ver si tenemos cambios pendientes de enviar o traer de origen (push/pull), si tenemos cambios sin comitear y saber en que branch estamos parados actualmente.

Listar branches locales

Este comando nos permite ver la lista de branches que tenemos en nuestro repositorio local.

Como te acabo de mostrar, no es tan complejo manejar los comandos básicos de GIT directamente desde tu consola.

Para finalizar este artículo te dejo link a la documentación oficial de GIT y link a descargar GIT para tu sistema operativo.

Si tienes algún comentario o comando útil que esté faltando en este artículo te invito a enseñárnoslo en los comentarios.

Comentarios