Git: 如何取消忽略所有 Symfony 供应商文件?

Git: how to unignore all Symfony vendor files?

不幸的是,我无法使用 composer,因为网络空间内存不足。这就是为什么我试图将 vendor/* 推送到 git 存储库,以便能够提取完整项目,包括依赖项。

在我的 .gitignore 中,我通过 !/vendor/* 强制 git 忽略供应商文件。

适用于大多数文件,但不适用于/vendor/friendsofsymfony/jsrouting-bundle

/vendor/friendsofsymfony/jsrouting-bundle/.gitignore的内容:

/phpunit.xml
/composer.lock
/composer.phar
/vendor/
/node_modules/

我的存储库托管在 BitBucket 上。我还不知道 不同的文件夹图标 及其旁边的哈希值的含义。如果有人知道,请评论。

有谁知道如何强制 git 处理所有供应商文件?

提前致谢!

解决方案
由于 jsrouting-bundlegit submodule,我选择了这个解决方案:

git submodule add git://github.com/FriendsOfSymfony/FOSJsRoutingBundle.git vendor/friendsofsymfony/jsrouting-bundle

另一种方法是使用 deps 文件(未测试),来源: https://github.com/XKEYGmbH/ifresco-client/tree/master/vendor/friendsofsymfony/jsrouting-bundle/FOS/JsRoutingBundle/Resources/doc

jsrouting-bundle 文件夹是 Git submodule。 Git 子模块实际上是对另一个 Git 存储库的引用。这就是为什么您无法将更改添加到原始 Git 存储库的原因。

我以前必须这样做,这是我所做的:

  • php composer.phar selfupdate
  • php composer.phar update
  • vendor目录下运行sudo find . -type d -name .git | xargs rm -rf
  • 提交所有修改:git add -A .

这样,您的供应商将像 src 目录一样提交,因此在您的生产环境中部署时无需 运行 composer install。当想要更新时,只需重复该过程。但这当然不是一个好的做法,只有当您不能在生产服务器上 运行 composer 时才应该这样做。