当做composer更新时,composer抱怨文件被编辑了


When doing composer update, composer complains that files are edited?

当我运行

php composer.phar update

composer抱怨我所有的库都被修改了——即使我没有碰它们。

    更新jdorn/sql-formatter (dev-master 3d8a973 => v1.2.9)包中有修改过的文件:M lib/SqlFormatter.php

注意:我是从远程存储库中提取的项目。

可能是编码在这个过程中搞砸了吗?

如何解决这个问题?

"尽管我没有碰它们。"

有东西起作用了。如果你认为它不是你的,那么它可能是你的IDE"帮助"将其重新格式化为你指定的标准。

你应该做的是:

  • 进入目录vendor/jdorn/sql-formatter

  • 执行git diff

  • 命令

这将显示实际发生了什么变化。如果只是空白/代码重新格式化,那么很可能是你的IDE"有用地"改变了文件。

如果这是一个实际的代码更改,那么它可能只是你没有意识到你在哪个文件。

如果是其他原因,那么可能有其他原因,但是git diff应该允许您找出是什么。

下面的答案似乎是我能找到的最完整的答案,它解决了问题(虽然不是问题的根源):

https://stackoverflow.com/a/24606663/667773

摘自@mazenovi的回答:

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

或修改composer.json后

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

php composer.phar update -n