Git:如何取消所有Symfony供应商文件的签名?

时间:2016-09-09 10:33:32

标签: php git symfony gitignore

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

在我的.gitignore我强迫git按!/vendor/*取消供应商档案。

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

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

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

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

enter image description here

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

提前致谢!

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

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

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

2 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

过去我必须这样做,这就是我所做的:

  • 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时才应该这样做。