3 minutos de lectura

Entendiendo .gitkeep: El Marcador de Directorios Vacíos

Puntos a ver ...

El Propósito de .gitkeep

Git no rastrea directorios vacíos por diseño. Cuando necesitamos mantener un directorio vacío en la estructura de nuestro repositorio, utilizamos .gitkeep. Es importante señalar que no es una característica oficial de Git, sino una convención adoptada por la comunidad.

Casos de Uso Comunes

Directorios de Compilación

proyecto/
├── src/
└── build/
    └── .gitkeep

El directorio build/ se preserva para el output de compilación mientras mantenemos limpio el repositorio.

Directorios de Caché en Desarrollo

proyecto/
├── app/
└── cache/
    └── .gitkeep

Las aplicaciones frecuentemente necesitan directorios de caché disponibles pero vacíos al clonar inicialmente.

Directorios de Assets para Testing

proyecto/
└── tests/
    └── fixtures/
        └── uploads/
            └── .gitkeep

Los suites de pruebas a menudo requieren estructuras específicas de directorios para simular cargas de archivos.

Buenas Prácticas

  1. Nomenclatura Alternativa: Aunque .gitkeep es convencional, algunos equipos usan .keep o .gitignore. Lo importante es mantener la consistencia dentro del proyecto.

  2. Comentarios en el Archivo: Es recomendable añadir un comentario dentro del .gitkeep explicando su propósito:

# Este directorio se utiliza para almacenar archivos temporales de caché
# Se mantiene vacío en el repositorio mediante este archivo .gitkeep
  1. Uso con .gitignore: Si necesitas excluir todos los archivos de un directorio excepto .gitkeep:
cache/*
!cache/.gitkeep

Consideraciones Importantes

  • .gitkeep es una solución específica para mantener directorios vacíos. No debe usarse para otros propósitos.
  • No abuses de .gitkeep. Si un directorio está constantemente vacío, considera si realmente es necesario en tu estructura.
  • Documenta en el README del proyecto los directorios que utilizan .gitkeep y su propósito.

Alternativas

En algunos casos, podrías considerar alternativas a .gitkeep:

  1. Incluir un archivo README.md explicativo en el directorio.
  2. Usar scripts de inicialización que creen la estructura necesaria.
  3. Implementar la creación dinámica de directorios en tu aplicación.

La elección dependerá de tus necesidades específicas y las convenciones de tu equipo.