¿Cómo enviar la carpeta del proveedor de Composer al repository de Git?

¿Puedo configurar .gitignore de tal manera que permita que las dependencies de Composer (el directory del proveedor) vivan dentro de mi repository?

Los compositores le recomiendan oficialmente que "no debería" hacer esto. Y proporciona tres razones ( https://getcomposer.org/doc/faqs/should-i-commit-the-dependencies-in- my-vendor-directory.md ):

  1. Gran tamaño y diferencias del repository de VCS cuando actualiza el código.
  2. Duplicación del historial de todas sus dependencies en su propio VCS.
  3. Agregar dependencies instaladas a través de git a un repository git las mostrará como submodules. Esto es problemático porque no son submodules reales y te encontrarás con problemas.

Estas tres razones no me importan. También es posible que la razón tres pueda ser obviada por un inteligente .gitignore .

Si es necesario que diga una motivación para esta pregunta, entonces mi motivación es: CocoaPods lo hace de esta manera y me gusta cómo funciona CocoaPods.

¿Qué debería hacer exactamente en .gitignore para lograr esto?

Simplemente elimine cualquier reference a / proveedor de su file .gitignore. A continuación, agregue y confirme los files del proveedor.

Solo prepárese para agregar más de 100 megas de files de la biblioteca del proveedor a su repository.