.gitignore
El archivo .gitignore
se utiliza en Git para indicar qué archivos o directorios deben ser ignorados por el sistema de control de versiones. Esto es útil cuando no deseas que ciertos archivos sean rastreados o incluidos en los commits, como archivos de configuración local, dependencias, archivos temporales o binarios generados por el sistema.
¿Para qué sirve .gitignore
?
El propósito principal de un archivo .gitignore
es evitar que archivos innecesarios, sensibles o específicos de una máquina sean incluidos en el repositorio. Algunos casos comunes donde el archivo .gitignore
es útil:
- Archivos de configuración local:
- Archivos que varían de una máquina a otra, como configuraciones de entornos locales (
.env
,config.local.js
).
- Archivos que varían de una máquina a otra, como configuraciones de entornos locales (
- Archivos generados automáticamente:
- Archivos temporales, logs, archivos compilados, o resultados intermedios que se generan en el proceso de desarrollo (
build/
,dist/
,*.log
).
- Archivos temporales, logs, archivos compilados, o resultados intermedios que se generan en el proceso de desarrollo (
- Dependencias externas:
- Directorios o archivos de dependencias que se pueden regenerar usando herramientas de gestión de paquetes como
node_modules/
,vendor/
.
- Directorios o archivos de dependencias que se pueden regenerar usando herramientas de gestión de paquetes como
- Archivos binarios:
- Archivos generados por la compilación, como ejecutables, que no deben estar en el repositorio.
¿Cómo crear un archivo .gitignore
?
- Crear el archivo:
- Simplemente crea un archivo llamado
.gitignore
en la raíz del repositorio o en cualquier subdirectorio si quieres aplicar reglas específicas a esa ubicación.
touch .gitignore
- Simplemente crea un archivo llamado
- Añadir reglas:
- Abre el archivo
.gitignore
y añade patrones para especificar qué archivos o carpetas quieres ignorar. Estos patrones pueden ser nombres de archivos específicos, extensiones, directorios o patrones más avanzados.
- Abre el archivo
- Cometer el archivo:
- Luego, agrega y confirma los cambios para que el archivo
.gitignore
sea parte del repositorio.
git add .gitignore git commit -m "Add .gitignore file"
- Luego, agrega y confirma los cambios para que el archivo
Sintaxis básica de .gitignore
:
- Ignorar archivos por nombre:
- Ignora un archivo específico.
secret.txt
- Ignora un archivo específico.
- Ignorar archivos por extensión:
- Ignora todos los archivos de una extensión específica.
*.log *.tmp *.swp
- Ignora todos los archivos de una extensión específica.
- Ignorar directorios:
- Ignora todo un directorio.
/node_modules/ /build/ /dist/
- Ignora todo un directorio.
- Ignorar todos los archivos de un tipo en todos los subdirectorios:
- Usa un patrón para ignorar todos los archivos de un tipo en cualquier parte del repositorio.
*.class # Para Java *.pyc # Para Python *.DS_Store # Para macOS
- Usa un patrón para ignorar todos los archivos de un tipo en cualquier parte del repositorio.
- Incluir un archivo específico que fue previamente ignorado:
- Usa una regla negada con
!
para forzar a Git a rastrear un archivo que de otra manera sería ignorado.*.log # Ignora todos los archivos .log !important.log # Exceptúa el archivo "important.log"
- Usa una regla negada con
- Ignorar archivos en un subdirectorio específico:
- Puedes especificar reglas para archivos en subdirectorios.
docs/*.txt # Ignora todos los .txt dentro de la carpeta docs
- Puedes especificar reglas para archivos en subdirectorios.
- Ignorar un archivo o directorio dentro de un subdirectorio específico:
/subdir/cache/
Ejemplos de .gitignore
específicos:
1. Node.js (.gitignore
para proyectos Node.js):
# Logs
logs
*.log
npm-debug.log*
# Dependencias
/node_modules/
# Archivos de compilación
/dist/
/build/
# Archivos de configuración local
.env
.env.local
# Otros
.DS_Store
2. Python (.gitignore
para proyectos Python):
# Archivos compilados
__pycache__/
*.py[cod]
# Entorno virtual
venv/
.env
# Archivos de configuración
config.py
# Archivos de log
*.log
# Otros
.DS_Store
3. Java (.gitignore
para proyectos Java):
# Archivos de compilación
*.class
# Directorios de construcción
/build/
/target/
# Dependencias
/.mvn/
/.idea/
# Otros
*.log
*.jar
*.war
4. JavaScript/React (.gitignore
para proyectos React):
# Dependencias
/node_modules/
# Archivos de compilación
/build/
# Logs
npm-debug.log*
yarn-debug.log*
# Archivos de configuración local
.env
.env.local
# Otros
.DS_Store
5. Django (.gitignore
para proyectos Django):
# Archivos de Python
*.pyc
__pycache__/
# Archivos de entorno virtual
env/
venv/
# Configuración
*.env
# Archivos de compilación
/staticfiles/
/mediafiles/
# Otros
.DS_Store
Reglas avanzadas en .gitignore
:
- Ignorar todo en un directorio excepto ciertos archivos:
- Esto es útil si quieres ignorar la mayoría de los archivos en un directorio, pero mantener algunos bajo control de versiones.
/config/* !/config/settings.json
- Comentarios:
- Puedes agregar comentarios en tu
.gitignore
con el símbolo#
.
# Ignora archivos temporales *.tmp
- Puedes agregar comentarios en tu
- Patrones recursivos:
- Puedes usar
**
para indicar directorios de cualquier nivel de profundidad.
logs/**/*.log # Ignora archivos .log en cualquier subdirectorio dentro de "logs"
- Puedes usar
Conclusión:
El archivo .gitignore
es una herramienta esencial para gestionar el contenido de tu repositorio de manera eficiente, asegurando que solo los archivos relevantes sean rastreados. Con su uso adecuado, puedes evitar conflictos y mantener tu repositorio limpio y manejable.