Cómo ignorar archivos con Git mediante el archivo de configuración .gitignore

3min

A estas alturas, raro es el desarrollador o equipo de trabajo que no conoce o utiliza el sistema de control de versiones Git. Hoy hablaremos de un archivo fundamental en el trabajo con repositorios a la hora de controlar las versiones de un proyecto. Se llama .gitignore y nos sirve para ignorar archivos o carpetas enteras de nuestro sistema.

Tenemos que tener en cuenta que, en un repositorio, no es necesario controlar todos los tipos de archivos. El más claro ejemplo lo tenemos con las dependencias, es decir, todas las librerías que instalamos de terceros y en las que nos basamos para desarrollar nuestro programa más rápidamente. Esas dependencias contienen código que no forma parte directa de nuestro proyecto y, por tanto, no tiene sentido que se controle mediante Git el estado de cada una de sus versiones.

Pero hay muchos otros ejemplos, como archivos temporales, archivos generados por el sistema operativo o por los editores de código, que realmente no forman parte del código específico con el que estamos trabajando. Incluso archivos binarios, builds, compilaciones, imágenes, archivos comprimidos, etc. Todos esos archivos no hacen más que engordar un repositorio, haciendo que sea más pesado y dificultando el mantenimiento del sistema de control de versiones.

Si estás empezando a trabajar con Git, te recomendamos los artículos Control de versiones: Git y GitHub y Cómo instalar Git en un Servidor Cloud.

Índice

Gitignore es la solución

Con el archivo .gitignore podemos solucionar esta necesidad, manteniendo fuera todos los archivos que no necesitamos controlar con Git. Afortunadamente, su uso es muy sencillo.

El archivo .gitignore se coloca en la raíz de tu proyecto y contiene texto plano. Ten en cuenta que el archivo en puede estar oculto por defecto en algunos sistemas operativos.

Veremos varios ejemplos de carpetas y patrones de archivos que no vamos a necesitar controlar y que nos pueden ayudar a entender mejor la esencia del .gitignore, a la vez que nos permitirán conocer la sintaxis con la que se trabaja.

Gitignore para Composer

Si estamos desarrollando con PHP y usamos Composer como gestor de dependencias, tendremos que sacar fuera del repositorio todo lo que hay en la carpeta vendor, que son las librerías de terceros que gestionamos vía Composer, además del archivo composer.phar que es el código original del propio gestor de dependencias.

Gitignore para Windows

Si desarrollamos en el sistema operativo Windows tendremos que dejar fuera todos los archivos generados automáticamente por el sistema operativo (caché de thumbnails, configuración de visualización de carpetas, papelera de reciclaje…), instaladores de software, etc.

Podremos usar un código como este:

Thumbs.db
ehthumbs.db
ehthumbs_vista.db

Desktop.ini

$RECYCLE.BIN/

*.cab
*.msi
*.msm
*.msp

Gitignore para eclipse

Para el IDE Eclipse también podríamos generar una lista de archivos para Gitignore, dependiendo del tipo de proyecto que vamos a usar dentro del IDE esta lista puede cambiar (por ejemplo, todos los archivos .project) Si trabajamos con Python y tenemos PyDev (IDE específico de Python basado en Eclipse), los proyectos además almacenan en archivos con extensión .pydevproject información extra. Además, Eclipse trabaja con archivos temporales con metadatos que tampoco necesitamos controlar por Git.

Así que este sería un modelo de lista que exluiríamos: bin/, tmp/, *.tmp*.bak*.swp, *.project*.pydevproject.

Como puedes ver, definir un archivo .gitignore puede ser una tarea delicada y detallista, porque muchas veces puede haber archivos que ni siquiera conoces y que tendrías que especificar. Aun así, utilizarlo es más que recomendable.

También nos puede ayudar www.gitignore.io,un útil recurso para desarrolladores que permite definir todos aquellos elementos de nuestro espacio de trabajo, junto con librerías, frameworks y lenguajes. Una vez completa la lista de tecnologías deseada, nos entrega directamente el código de nuestro archivo .gitignore sin tener que preocuparnos de más. Será solamente copiar y pegar.

Fernán García de Zúñiga

Productos relacionados: