¿Por qué Git sobrescribe los files en el server después de la implementación?

Tengo una aplicación node.js en heroku y guarda imágenes en la carpeta public / productimages. Pero cada vez que presiono mi nuevo código, todas las imágenes anteriores se eliminan. He agregado productimages en el file .gitignore pero no uso. public / productimages en mi computadora local está vacío.

No tiene permitido usar el sistema de files para el almacenamiento permanente en Heroku.

La razón es que cada vez que Heroku inicia su aplicación, la inicia en un directory temporal completamente nuevo. Cada vez que Heroku apaga la aplicación, elimina ese directory temporal en el que se ejecutaba su aplicación previamente. Heroku lo hace todas las noches, cada vez que lo hace, cada vez que cambia variables de configuration, cada vez que cambia complementos, cada vez aumenta o disminuye la cantidad de dynos, etc.

Debe usar un service externo, como la database PostgreSQL o S3, para almacenar todo lo que desee almacenar.

Premisa básica de la computación en la nube: el almacenamiento no es persistente, a less que así lo indique explícitamente.

No se utiliza Heroku, pero creo que sus files no se conservarán si no están versionados y pueden getse de su repository.