Guía rápida y fácil para usar Git

¡Muy buenas a todos! He estado pensando sobre mis objetivos para este 2016 y decidí hacer un post para el blog cada dos semanas, así que vamos a empezar, a ver si lo consigo.

En esta entrada mostraré el flujo de trabajo básico y los comandos que cualquier persona debería seguir para empezar a usar Git en sus proyectos.

Empezando

Git es un software de control de versiones que nos ayuda a añadir «puntos de guardado» en nuestro código que nos permite volver a ellos en caso de que cometamos errores o queramos recuperar algo perdido. Esta funcionalidad nos ayudará en otras tareas corrientes en la vida de un programador como pueden ser trabajar en equipo o testear nuevas características de nuestros proyectos. Empecemos.

Git comúnmente se utiliza como utilidad de consola de comandos (CLI) pero hay gran cantidad de programas que te ofrecerán una interfaz más o menos amigable según cual elijáis así que podéis probarlas si queréis. Yo mostraré como usar la línea de comandos.

Cuando estás trabajando con Git necesitas inicializar un repositorio en tu proyecto, para hacerlo simplemente navegaremos en la terminal al directorio donde tenemos el proyecto y lanzamos:

$ git init

Una vez el repositorio esté listo podremos crear un archivo que nos permita definir que archivos y carpetas no queremos que se añadan a las copias de seguridad. Este archivo se denomina .gitignore y puedes crearlo siguiendo la guía oficial.

Una vez creado, es el momento de añadir archivos al repositorio, Git ofrece un comando bastante simple para esto: add. Con este comando puedes añadir tanto archivos individuales como añadir todos los archivos disponibles en el proyecto de golpe o seleccionarlos mediante wildcards. Lo normal sería añadir todos los archivos que tenemos en el proyecto, por lo que para hacer esto corremos:

$ git add .

(Hay varios comandos para añadir múltiples archivos a la vez, puedes ver las diferencias en esta pregunta de StackOverflow)

Verás en la salida de la terminal los archivos que se han añadido.

Cuando tengas todos los archivos nuevos y modificados añadidos usando add llega el momento de guardar su estado. El comando para esto es commit y permite añadir un mensaje para comprender qué se está modificando en esa copia.

$ git commit

Al lanzar esto, se nos pedirá un mensaje para diferenciar el commit de otros anteriores, puedes evitar esto usando el flag -m al lanzar el comando así:

$ git commit -m "Fix problema bucle infinito"

Se recomienda muchísimo para cualquier desarrollador seguir buenas prácticas escribiendo mensajes de commit. Seguir un estándar establecido de manera externa o por nuestro equipo de trabajo nos permitirá reconocer más rápido el tipo de commit (nueva funcionalidad, arreglos, cambios de responsabilidad…). Una buena lectura para tener una buena idea sobre como escribir buenos mensajes de commit es esta guía.

Ramas

Una rama es una manera de «congelar» tu código actual en un punto mientras sigues desarrollando otra característica o funcionalidad. Puedes cambiar entre el código congelado y el nuevo sin peligro ninguno y de manera muy rápida y, una vez termines, puedes fusionarlos para cerrar los cambios.

Para manejar las ramas hay dos comandos básicos a conocer: branch y checkout.

Git branch

Con este comando puedes crear, renombrar y eliminar ramas. Veamos como se hace.

Añadir una nueva rama:

$ git branch <nombre>

$ git branch bugfix

Para cambiar el nombre de una rama debes estar en ella y escribir:

$ git branch <nuevo_nombre>

Y para borrarla simplemente:

$ git branch -d <nombre_rama>

Esto mostrará una alerta si es que tiene cambios sin registrar (commit) así que si quieres borrarlos igualmente puedes forzarlo con:

$ git branch -D <branch_name>

Git checkout

Con checkout puedes navegar entre ramas y crearlas.

Para navegar debes lanzar checkout junto al nombre de la rama a la que ir:

$ git checkout <nombre_rama>

$ git checkout bugfix

Puedes crear e ir a la nueva rama en un solo comando usando:

$ git checkout -b <nombre_rama>

Si esa rama ya existía te quedarás en la misma rama en la que estabas y recibirás un mensaje de alerta que se mostrará en el terminal. Puedes forzar la rama a borrarse y recrearse usando -B, de la siguiente manera:
$ git checkout -B <branch_name>

Git merge

Cuando has terminado tu tarea en una rama y quieres actualizar master (la rama principal en Git) o cualquier otra rama debes usar merge. Este comando mezclará el código de ambas ramas automáticamente y, en caso de que algún error ocurra, mostrará los archivos con errores en el terminal para proceder a su modificación y commitear los cambios finales.

Para hacer merge a una rama debes moverte a la rama que quieres actualizar (master o una desactualizada) y ejecutar merge con el nombre de la rama a fusionar:

$ git checkout master

$ git merge bugfix

Bueno, y con esto deberías estar más o menos listo para usar Git aunque sea muy básico, en el futuro explicaré como conectarse a repositorios remotos y algunos comandos más útiles cuando trabajas en equipo.

¡Ánimo y mucha suerte!

Web/mobile developer and JavaScript lover. Future project manager. Just living happy coding, playing music and enjoying my limited time.