Problema: Git quiere seguir TODOS tus archivos, incluso los inútiles:
.tmp)node_modules/).env).DS_Store)Solución: .gitignore
mkdir demo-gitignore && cd demo-gitignore
git init
# Crear archivos de prueba
echo "print('app')" > app.py
echo "SECRET_KEY=123456" > .env
mkdir temp && echo "cache" > temp/cache.tmp
mkdir logs && echo "error logs" > logs/app.log
# Sin .gitignore, Git quiere seguirlo todo
git status # Ver todos los archivos
# Crear .gitignore
cat > .gitignore << EOF
# Archivos sensibles
.env
*.secret
# Carpetas temporales
temp/
logs/
build/
# Archivos del sistema
.DS_Store
*.tmp
EOF
# Ahora Git ignora esos archivos
git status # ¡Más limpio!Patrones útiles:
| Patrón | Ignora |
|---|---|
*.log | Todos los archivos .log |
temp/ | La carpeta temp entera |
.env* | Todos los archivos que empiezan por .env |
!important.log | Excepción: conservar este archivo |
build/** | Todo lo de build de forma recursiva |
Plantillas listas para usar:
__pycache__/, *.pyc, .envnode_modules/, npm-debug.log*.class, target/# Comprobar si un archivo está ignorado
git check-ignore -v .env # Si está ignorado: muestra la regla
git check-ignore logs/app.log # Si está ignorado: no muestra nada
# Forzar la adición de un archivo ignorado (solo si hace falta de verdad)
git add -f fichier-ignore.tmp
# Ver todos los archivos no ignorados
git ls-filesRegla de oro: crea el .gitignore al PRINCIPIO del proyecto.