git control de versiones

Aprende Git de manera sencilla: .gitignore

En este cuarto artículo sobre la guía para aprender Git de manera sencilla y desde cero, vamos a ver qué es el fichero .gitignore. En cualquier proyecto vamos a necesitar ignorar una serie de archivos (archivos de configuración, de entornos, librerías de gulp, etc…).

Por ejemplo en un proyecto en WordPress, no debemos subir al repositorio archivos como wp-config.php o .htaccess, en su lugar deberías crear archivos wp-config.php.dist y .htaccess.dist para que cada miembro del equipo lo tenga disponible en el repositorio, pero pueda renombrarlo y establecer las configuraciones propias de su entorno de trabajo.

Para ello utilizaremos el fichero .gitignore, donde podremos indicar los ficheros o patrones de ficheros/directorios que no queremos incluir en nuestro proyecto. La sintaxis de este fichero es la siguiente:

  • En cada línea estableceremos el fichero, directorio o patrón a ignorar
  • Las líneas vacías o en blanco no se consideran
  • Las líneas que comienzan con # se consideran comentarios, es decir, no se ejecutan
  • Las líneas que comienzan con ! permiten realizar excepciones (niega el patrón)
  • Si la línea termina en /, sólo se aplicará sobre directorios
  • Utilizaremos * como caracter comodín
  • Pueden realizarse patrones a través de expresiones regulares

El fichero .gitignore, habitualmente se suele ubicar en la raíz del directorio de trabajo, para que aplique sobre todo el directorio. Sin embargo, es posible tener varios ficheros .gitignore en otros directorios, para realizar el filtrado dentro de dicho directorio.

.gitignore global

Hay ciertos ficheros que crea el sistema operativo, los IDEs, etc.. que no deberían subirse al repositorio. Es decir, en función de si utilizas Windows, Linux o Mac, o si utilizas Visual Studio, PHPStorm, etc… se generan ficheros que no deberíamos trackear, independientemente del tipo de proyecto.

Para esto Git nos ofrece la oportunidad de ignorar este tipo de ficheros globalmente. Es complementario al .gitignore que tengamos específico de cada proyecto (WordPress, Drupal, Symfony, Angular…)

Para esto crearemos un fichero .gitignore_global y lo ubicaremos en la misma ruta donde tenemos el .gitconfig global. Por ejemplo ~/.gitignore_global en caso de Mac, C:\Users\{myusername}\.gitignore_global en el caso de Windows.

A continuación debemos indicarle a Git que lea de ese archivo, para eso editaremos el .gitconfig y le pasaremos la ruta de nuestro archivo .gitignore_global:

git config --global core.excludesfile ~/.gitignore_global

Por defecto, incluiremos estas reglas a nivel global, de aplicación a todos los proyectos:

# Node
npm-debug.log
node_modules/

# Packages
vendor/

# Mac
.DS_Store

# Windows
Thumbs.db

# WebStorm/PhpStorm/VSCode
.idea/
.vscode/

# vi
*~

# General
log/
*.log

Ignorar ficheros o directorios ya trackeados

Una cosa a tener en cuenta es que a través de .gitignore sólo pueden ignorarse los ficheros antes de que pertenezcan al stage de GIT. Es decir, si el fichero ya existe en el control de versiones, no se borrará ni tampoco será ignorado a partir de incluirlo en el .gitignore

Tendremos que eliminarlo de la caché de git, para ello utilizaremos el siguiente comando:

git rm [file_or_dir] --cached

Esto lo eliminará del control de versiones pero no de nuestro proyecto en local. Una vez hecho esto si podemos incluirlo en nuestro .gitignore

¿Te ha resultado útil esta información? 🍺

Si este post te ha resuelto un problema, invítame a un café o a una cerveza. Con este pequeño gesto me animas a seguir escribiendo.

Comentarios

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *