¿Es posible eliminar el historial de git del directory del proveedor al usar compositor en un proyecto de PHP?

Estoy usando compositor en un proyecto PHP. Me di count de que la carpeta de mi proveedor es particularmente grande. Al inspeccionar las carpetas dentro de mí, me he dado count de que algunos packages son muy grandes (~ 30Mb); sin embargo, los files reales que se han revisado no superan un par de Kilobytes; la carpeta .git es masiva!

Estoy trabajando en algunos hosts extremadamente restrictivos, así que necesito usar el menor espacio de disco posible.

¿Es posible que el compositor importe JUSTO los files del package real y no mantenga el historial de git? O bien, ¿el compositor requiere el historial de git para comprender qué versión del package ha instalado, etc.? Supongo que puede 'recordar' esto en base al file composer.lock.

He visto varias páginas que sugieren que es posible hacer lo que estoy pidiendo usando vanit Git ( link | link ), pero ¿puede el compositor estar configurado para hacer esto?

Espero que la pregunta sea clara!

No copie las carpetas .git en el host web. Esto nunca debería hacerse a less que tenga un caso de uso (como el componente key en su esquema de implementación).

El segundo método sería importar los files ZIP de distribución en lugar de clonar el repository (opción de línea de command --prefer-dist ), pero esto solo funcionaría de manera pnetworkingeterminada para las bibliotecas hospedadas de Github, porque Github ofrece files ZIP para casi todo en una location conocida, y Composer hace uso de ella. Para sus repositorys git hospedados, manualmente o con la ayuda de Satis creará files ZIP de sus versiones labeldas, y los agregará a su composer.json bibliotecas, y luego a su software principal.

Puede extraer los files del repository usando:

 git archive HEAD | gzip > archive.tar.gz 

Esto perderá cualquier historial de git, y esencialmente lo que obtienes al extraer esto no será en absoluto un tree git. Si desea convertir esto en un tree nuevo para realizar un seguimiento de los cambios a partir de este punto, puede hacer un inicio de git en este directory y comenzar de cero.