¿Cómo implementar solo una parte del proyecto en Heroku?

Estoy construyendo un proyecto que consta de dos carpetas: una para ejecutar en un dispositivo IOT y la otra para ejecutar en el server. La parte del server se implementará en Heroku. Sin embargo, me gustaría mantener el proyecto en un solo proyecto global de Git, para poder mantenerlo todo organizado.

/* current setup */ ├── server/ ├── device/ └── .git/ 

Sin embargo, implementar un proyecto en Heroku significa que el package.json del server debe estar en la raíz, lo que rompe la simetría del proyecto. Tampoco quiero que el server se cargue con los files del dispositivo.

Por lo tanto, creo que lo mejor sería tener una subcarpeta Git separada para que el server envíe a Heroku. ¿Cuál sería la forma más adecuada de tener una sub-cosa para este propósito? He leído sobre submodules y subtreees, pero me resulta difícil averiguar cuáles son exactamente las fortalezas y debilidades para este caso de uso.

Después de leer mucho y comparar lo que parecían las dos opciones relevantes (submodules y subtreees) me decidí por los subtreees.

Los subtreees me permiten hacer exactamente lo que quiero, es decir, enviar una subcarpeta de mi proyecto a Heroku.

La documentation ( que se puede encontrar aquí ) no es sorprendente, pero es suficiente para que tenga sentido.