Skip to content
Flujos de trabajo5 min de lecturaVerificado Git 2.40+

Cómo ignorar un directorio en Git

Guía completa sobre cómo excluir carpetas en Git: uso de barras finales, rutas relativas a la raíz, subdirectorios y cómo conservar carpetas vacías con .gitkeep.

1. La regla de la barra final: build/ frente a build

En Git, añadir una barra inclinada final (/) indica a Git que compruebe únicamente directorios e ignore los archivos normales con el mismo nombre:

gitignore
# Matches only directories named "build/" (e.g. /build/, /src/build/)
build/

# Matches BOTH a directory named "build" AND a file named "build"
build
Buena práctica

Usa siempre una barra inclinada al final cuando tu intención sea ignorar una carpeta. Esto evita ignorar por error scripts o archivos sin extensión.

2. Carpetas ancladas a la raíz frente a carpetas recursivas

De forma predeterminada, un nombre de carpeta sin barra inicial coincide a cualquier profundidad en tu repositorio:

gitignore
# Matches "logs/" anywhere in the repository: /logs/, /apps/web/logs/, etc.
logs/

# Anchored: Matches "logs/" ONLY at the repository root
/logs/

3. Subdirectorios anidados y comodines

Si necesitas ignorar ciertas carpetas dentro de una estructura sin ignorar el directorio principal, combina comodines glob con nombres de carpeta:

gitignore
# Ignore any folder named "temp" inside any "build" directory
build/**/temp/

# Ignore all subdirectories inside packages except package files
packages/*/dist/

4. Conservar carpetas vacías con .gitkeep

Git rastrea archivos, no carpetas vacías. Si necesitas subir una estructura de carpetas vacía (como uploads/ o logs/), usa la convención de .gitkeep:

gitignore
# 1. Ignore everything inside uploads/
uploads/*

# 2. But whitelist the .gitkeep file inside it
!uploads/.gitkeep

5. Re-incluir subcarpetas de forma segura

Cuando se ignora una carpeta completa, no es posible re-incluir una subcarpeta con un signo de exclamación. Debes ignorar el contenido y autorizar la subcarpeta:

gitignore
# Ignore everything inside config/
config/*

# Whitelist production folder and its contents
!config/production/
!config/production/**

Preguntas frecuentes

Respuestas a dudas comunes de desarrolladores sobre reglas de .gitignore, caché y gestión del repositorio.

¿Cuál es la diferencia entre carpeta y carpeta/ en .gitignore?

'carpeta/' solo coincide con directorios. 'carpeta' sin barra coincide tanto con directorios como con archivos regulares que tengan ese nombre.

¿Cómo confirmo una carpeta vacía en Git?

Crea un archivo vacío llamado .gitkeep dentro de la carpeta, ignora el contenido con 'carpeta/*' y añade la excepción '!carpeta/.gitkeep'.

¿Cómo ignorar el contenido de una carpeta pero mantener la carpeta misma?

Escribe 'directorio/*' en lugar de 'directorio/'. Esto ignora los archivos internos sin saltarse la exploración de la carpeta.

← Leer guíasAbrir en el generador completo