Una de las características de Git es que, por defecto, los directorios vacíos no forman parte del repositorio y, por lo tanto, son silenciosamente descartados por operaciones como commit
o push
.
Incluso en los casos en que un directorio que previamente formaba parte de un repositorio pierda todo su contenido, este directorio directorio es silenciosamente eliminado del repositorio y no será creado en futuras operaciones de clonación.
Por otro lado, en la estructura de muchos proyectos, se contemplan directorios donde se alojarán objetos compilados a partir de las fuentes o archivos intermedios del proceso de empaquetado.
Estos archivos nunca deberían ser subidos al repositorio ya que se generan a partir de los fuentes y generalmente dependen fuertemente del entorno de desarrollo y opciones de compilación utilizadas. Pero los directorios que los contienen deben existir (estando originalmente vacíos) para que el proyecto pueda ser compilados sin errores.
La solución más elegante a este problema la encontré buscando por stack overflow y que consiste en crear el directorio e incluir dentro un fichero .gitignore
con el siguiente contenido:
# Ignorar todo contenido de este directorio * # Salvo el propio fichero .gitignore !.gitignore
Entonces, podremos incluir con git add
este fichero .gitignore
y así, no estando el directorio vacío el mismo será incluido en el repositorio con la próxima operación push
.
Además, como puede observarse, esta configuración de .gitignore
previene que accidentalmente algún fichero dentro de este directorio pueda pasar a formar parte del proyecto y es eliminado de los reportes que se realicen con git status
.