31

我正在通过作曲家更新 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

4 回答 4

41

设置 composer config 以丢弃更改(请参阅:https://github.com/composer/composer/pull/1188):

php composer.phar config --global discard-changes true
于 2013-09-15T12:04:56.590 回答
33

@lemats 和 @reza-sanaie 的答案都不完整,因为 --no-interaction (-n) 作曲家的选项需要在没有任何问题的情况下进行真正的更新(参见https://github.com/composer/composer/pull/1188 #issuecomment-16011533)。

所以之后

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

或修改 composer.json 后

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

采用

php composer.phar update -n
于 2014-07-07T08:57:23.730 回答
22

除了@lemats 解决方案,您可以修改 composer.json 文件:

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

启动此选项毫无价值,您必须在--no-interaction模式下运行

php composer.json install --no-interaction

尽管我同意@Seldaek 关于您不应该修改这些供应商文件的观点,但有时您不得不对其进行修补:(

于 2013-11-26T22:46:50.397 回答
-4

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

于 2012-11-29T10:09:21.633 回答