Empujando activos que no están en git repo para heroku

Tengo una aplicación web. En la carpeta pública debe haber activos (js / images / index.html).

No quiero almacenar estos activos en mi git repo (así que public se agrega a regulqr .gitingore), así que no quiero copyrlo allí y luego implementarlo.

La pregunta es cómo implementar este flujo de trabajo correctamente?

Lo que pensé es hacer (esto se hará mediante un script automático):

  1. Eliminar la carpeta pública de .gitingore (por lo que ahora los activos pueden ser
    agregado a git)
  2. Confirme estos cambios (nuevo .gitingore y activos)
  3. git push heroku -f
  4. git reset –hard HEAD ~ 1 (vuelve al estado antes de desplegar Heroku)

¿Qué puede estar mal con ese enfoque?

Ese enfoque no es una buena idea. De hecho, restablecer su database hará que el historial de la database local difiera de la historia de Heroku.

Después de la primera implementación, la implementación posterior fallará porque la inserción no avanza rápidamente. git requerirá que elimines los cambios de Heroku (fusionando los activos nuevamente en tu repository). De lo contrario, deberá – --force cada impulso, pero ese no es un buen enfoque, boostá la posibilidad de anular el repository remoto por error.

Mi sugerencia es que, si no quieres los activos en el repository, aléjelos completamente de Heroku. Por ejemplo, puede mantener la carpeta ignorada e implementar los activos en Amazon S3 o CDN. Tendrás la ventaja de tener resources fuera de tu aplicación Heroku y servirlos a través de CDN.