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

smo*_*eno 27 php composer-php symfony-2.1

我正在通过composer更新symfony verdors.我一直这样做:

php composer.phar update
Run Code Online (Sandbox Code Playgroud)

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

  - 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
Run Code Online (Sandbox Code Playgroud)

-10更多文件被修改,选择"v"查看完整列表放弃更改[y,n,v,s,?]?

怎么避免这个?

小智 37

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

php composer.phar config --global discard-changes true
Run Code Online (Sandbox Code Playgroud)


小智 30

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

所以之后

php composer.phar config --global discard-changes true
Run Code Online (Sandbox Code Playgroud)

或者在修改composer.json之后

"config": {
    "discard-changes": true
},  
Run Code Online (Sandbox Code Playgroud)

使用

php composer.phar update -n
Run Code Online (Sandbox Code Playgroud)


Rez*_*a S 20

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

  "config": {
      "discard-changes": true
  },  
Run Code Online (Sandbox Code Playgroud)

这个选项开始你必须以--no-interaction模式运行是没有价值的

php composer.json install --no-interaction

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

  • 如果它是一个重要的修复程序,您可以随时向供应商仓库执行拉取请求 (3认同)