我正在通过作曲家更新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,?]?
如何避免这种情况?
设置作曲家配置以放弃更改(见: https://github.com/composer/composer/pull/1188):
php composer.phar config --global discard-changes true
@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
@lemats解决方案的替代方法,您可以使用以下命令修改 composer.json 文件:
"config": {
"discard-changes": true
},
此选项启动毫无价值,您必须以--no-interaction
模式运行
php composer.json install --no-interaction
虽然我同意@Seldaek你不应该修改这些供应商文件,但有时你被迫修补它:(
不修改供应商文件怎么样?如果它们被修改很可能是因为行尾的一些混乱的 git 设置。见 https://help.github.com/articles/dealing-with-line-endings