🇯🇵 日本語 | 🇺🇸 English | 🇪🇸 Español | 🇵🇹 Português | 🇹🇭 ไทย | 🇨🇳 中文

Cómo usar .gitignore: Gestión de archivos que quieres excluir del seguimiento

En los artículos anteriores, hemos aprendido las operaciones básicas con Git y GitHub. Sin embargo, al ejecutar `git status` en un proyecto real, ¿alguna vez te has sentido desconcertado al ver que aparecen archivos generados automáticamente por el sistema operativo (como `.DS_Store` en Mac), información confidencial como contraseñas, o una gran cantidad de archivos de dependencias (como `node_modules`), y te has preguntado: "¿realmente necesito gestionar todo esto?"?

En este artículo, explicaremos en detalle cómo usar el archivo "`.gitignore`" para excluir intencionadamente del seguimiento los archivos y carpetas que no es necesario, o no se debería, poner bajo el control de Git. Usando `.gitignore` correctamente, podrás mantener tus repositorios limpios y gestionar tus proyectos de forma segura.


¿Qué es .gitignore? ¿Por qué es necesario excluir archivos?

`.gitignore`, como su nombre indica, es simplemente un archivo de texto donde se lista los archivos y carpetas que quieres que Git "ignore". Al colocar este archivo en el directorio raíz de tu proyecto, Git excluirá los archivos que coincidan con los patrones escritos en él de la visualización de `git status` y del objetivo de `git add`.

Entonces, ¿por qué es necesario excluir archivos? Hay tres razones principales:


Sintaxis y reglas básicas de .gitignore

La sintaxis de `.gitignore` es muy simple. Simplemente crea un archivo llamado `.gitignore` en la raíz de tu proyecto (donde se encuentra la carpeta `.git`) y escribe los nombres de los archivos o carpetas que quieres excluir, uno por línea.

Ejemplo de sintaxis básica:

# Las líneas que empiezan con '#' se tratan como comentarios

# Excluir especificando un nombre de archivo concreto
debug.log
config_secret.php

# Excluir un directorio entero (la barra final es opcional)
node_modules/
dist

# Excluir todos los archivos con una extensión específica
*.log
*.tmp

# Regla de excepción: Usar '!'
# Ignorar todo lo que hay en el directorio logs, pero incluir important.log en el seguimiento
logs/
!logs/important.log

También puedes usar comodines (`*`), lo que permite una configuración flexible. Puedes generar fácilmente una lista de archivos que deberían excluirse en cualquier proyecto en sitios como gitignore.io, por lo que puede ser una buena idea utilizarlos.


¡En la práctica! Pasos para crear un `.gitignore` e ignorar archivos

Ahora, vamos a crear un `.gitignore` en la práctica y a confirmar que los archivos innecesarios dejan de ser rastreados.

Paso 1: Crea el archivo `.gitignore`

Primero, crea un archivo `.gitignore` en el directorio raíz de tu proyecto. Como el nombre del archivo empieza con un punto, puede ser difícil crearlo con un explorador de archivos con GUI. La forma más segura es ejecutar el siguiente comando en la terminal (o Git Bash).

touch .gitignore

Paso 2: Escribe los archivos y carpetas que quieres excluir

Abre el archivo `.gitignore` que has creado con un editor de texto y escribe los elementos que se suelen excluir en el desarrollo web.

# Archivos del SO / Editor
.DS_Store
.vscode/

# Dependencias
node_modules/

# Archivos de registro
*.log
npm-debug.log*

# Variables de entorno
.env

Una vez que hayas editado el archivo, no te olvides de guardarlo.

Paso 3: Haz commit del propio `.gitignore`

Esta "regla de exclusión" en sí misma es una configuración importante que debe ser compartida por todos los miembros del equipo. Por lo tanto, el propio archivo `.gitignore` debe ser incluido en el control de versiones de Git y se le debe hacer commit.

git add .gitignore

git commit -m "Añadir archivo .gitignore"

Paso 4: Comprueba que funciona

Vamos a comprobar si los archivos realmente se ignoran. Crea un archivo llamado `debug.log`, que hemos incluido en nuestra lista de ignorados.

echo "Este es un registro de depuración." > debug.log

Ahora, prueba a ejecutar `git status`.

git status

¿Qué tal? `debug.log` no debería aparecer en la lista de "Untracked files" y debería ser completamente ignorado. ¡Lo has conseguido!


Nota importante: ¿Qué hacer con los archivos que ya se han subido con un commit?

Un error común en el que caen los principiantes es el de "hacer commit de un archivo importante y luego añadirlo a toda prisa a `.gitignore`". Sin embargo, `.gitignore` solo tiene efecto sobre los archivos que nunca antes han sido rastreados por Git.

Si quieres dejar de gestionar con Git un archivo que ya está siendo rastreado (por ejemplo, `secret-key.php`), necesitas eliminarlo de la lista de seguimiento de Git (el índice) con el siguiente comando.

git rm --cached [nombre_del_archivo]

Este comando es seguro, ya que no elimina el archivo en sí de tu PC, sino que simplemente lo "elimina del seguimiento de Git". Después de ejecutarlo, no te olvides de hacer commit de este cambio junto con las modificaciones de tu `.gitignore`.

git commit -m "Dejar de rastrear secret-key.php"