如何避免作曲家丢弃更改消息

时间:2012-11-28 20:14:34

标签: php symfony-2.1 composer-php

我正在通过composer更新symfony verdors。我总是这样做:

php composer.phar update

但最近版本的作曲家,在更新每个包之前都会显示如下消息:

  - Updating doctrine/data-fixtures dev-master (a95d783 => a28b6bd)
The package has modified files:
M .gitignore
M .gitmodules
M LICENSE
M README.md
M UPGRADE
M composer.json
M lib/Doctrine/Common/DataFixtures/AbstractFixture.php
M lib/Doctrine/Common/DataFixtures/DependentFixtureInterface.php
M lib/Doctrine/Common/DataFixtures/Event/Listener/MongoDBReferenceListener.php
M lib/Doctrine/Common/DataFixtures/Event/Listener/ORMReferenceListener.php
修改了-10个以上的文件,选择“v”查看完整列表     放弃更改[y,n,v,s,?]?

如何避免这种情况?

4 个答案:

答案 0 :(得分:37)

设置composer config以放弃更改 (见:https://github.com/composer/composer/pull/1188):

php composer.phar config --global discard-changes true

答案 1 :(得分:29)

@lemats和@ reza-sanaie的答案都不完整,因为--no-interaction(-n)作曲家的选项需要有一个真正的更新,没有任何问题(见{{3} })。

所以

之后
php composer.phar config --global discard-changes true

或修改composer.json后

"config": {
    "discard-changes": true
},  

使用

php composer.phar update -n

答案 2 :(得分:19)

替代@lemats解决方案,您可以使用以下命令修改composer.json文件:

  "config": {
      "discard-changes": true
  },  

这个选项没有任何价值,你必须在--no-interaction模式下运行

php composer.json install --no-interaction

虽然我同意@Seldaek你不应该修改这些供应商文件,但有时你被迫修补它:(

答案 3 :(得分:-1)

如何不修改供应商文件?如果它们被修改的可能性很大,那是因为对于行结尾的一些混乱的git设置。见https://help.github.com/articles/dealing-with-line-endings