作曲家 - 未经修改的变化(symfony 2.1)

Ste*_*cus 6 symfony composer-php symfony-2.1

我正在使用symfony 2.1与作曲家,我正在尝试运行作曲家更新

但是,我不断得到"有未提交的更改",我不记得更改供应商目录中的任何文件,它几乎每个包都会出现!

我尝试使用composer install来恢复任何更改,但它似乎没有效果.如果我删除锁文件并尝试安装,我会收到错误消息,如"symfony 2.1要求symfony 2.1 - > symfony 2.1 satisfiable".它没有意义.

如果我删除供应商中的内容,我会得到相同的错误消息,没有安装.

我所做的一切似乎都没有用.有没有"强制"更新的方法,无论"未提交的更改"

Adr*_*ult 14

你可以用composer status -v.以下是vendor/使用此命令检测文件更改以及如何修复它的方法.

首先,我们验证没有修改包:

?  SymfonyApp git:(master) ? composer status
No local changes
Run Code Online (Sandbox Code Playgroud)

然后,我们更改供应商文件

?  SymfonyApp git:(master) ? echo "modification" >> vendor/symfony/symfony/src/Symfony/Component/HttpKernel/Kernel.php
Run Code Online (Sandbox Code Playgroud)

然后我们让作曲家告诉我们修改后的供应商文件(注意-v选项,查看修改过的文件)

?  SymfonyApp git:(master) ? composer status -v
You have changes in the following dependencies:
/Users/adrienbrault/Developer/SymfonyApp/vendor/symfony/symfony:
    M src/Symfony/Component/HttpKernel/Kernel.php
Run Code Online (Sandbox Code Playgroud)

然后,我们重置供应商git存储库以将文件设置回其原始状态.

?  SymfonyApp git:(master) ? cd /Users/adrienbrault/Developer/SymfonyApp/vendor/symfony/symfony
?  symfony  git checkout .
?  symfony  cd -
~/Developer/SymfonyApp
Run Code Online (Sandbox Code Playgroud)

最后,我们检查文件是否被作曲家视为不再被修改.

?  SymfonyApp git:(master) ? composer status -v
No local changes
Run Code Online (Sandbox Code Playgroud)

更新:作曲家现在应该帮助你处理这个问题

  • 如果从git中忽略了供应商文件夹怎么办? (2认同)

Gok*_*asa 7

您还discard-changes可以true在 composer.json 文件的 config 参数中设置to ,请参阅https://getcomposer.org/doc/06-config.md#discard-changes

{
  "name": "test",
  "description": "Demonstrating concepts",
...
  "config": {
    "process-timeout": 1800,
    "discard-changes" : true
  },
...
}
Run Code Online (Sandbox Code Playgroud)