使用composer
时更改版本号的正确方法是什么?考虑当前情况:
您拥有master
和develop
个分支,您的版本为1.0.0
。出现严重错误,您必须创建一个hotfix-1.0.1
分支(来自master)以修复它并合并回master
和develop
。在您即将合并之后,您需要更新"version":"1.0.1"
内的composer.json
。
现在怎样?在我的情况下,我运行composer update
和几个更新的依赖项(这不是我运行它的原因,我只是认为每次composer.json更改时都必须运行它),最终导致1小时冲突 - 合并分支时解析composer.lock
。
更新composer update
后我是否必须运行"version"
(或任何其他作曲家命令),或者我不得不git commit
和git push
?
答案 0 :(得分:2)
更新自己的版本号时无需运行composer update
。仅在您想要更新依赖项时运行它:
为了获取最新版本的依赖项并更新
composer.lock
文件,您应该使用update
命令。php composer.phar update
这将解决项目的所有依赖项,并将确切的版本写入
composer.lock
。
我强烈建议明确列出您要更新的依赖项:
如果您只想更新一些软件包而不是所有软件包,可以按以下方式列出:
php composer.phar update vendor/package vendor/package2
您还可以使用通配符一次更新一堆包:
php composer.phar update vendor/*
答案 1 :(得分:2)
你不应该有#34;版本"如果您使用的是受支持的版本控制系统(Git,Mercurial或SVN),则键入您的composer.json文件。您应该使用要发布的版本创建标记。
如果添加对多次提交有效的版本号,Composer应该怎么做?哪个提交真正包含该版本?如果你可以在composer.json中检查几个具有相同版本名称的提交,""版本不清楚。
此外,在此文件中手动维护正确的版本号,在正确的时间/提交时递增它并且之后可能再次删除它是很麻烦的。
因为在vcs中标记软件版本并不意味着对任何文件进行编辑,所以自动无需运行" composer update"。
另请注意,composer update仅适用于程序包的依赖项。如果在其他地方使用它,则完全忽略锁定文件,仅使用composer.json中的版本要求。
关于composer.lock中的冲突:我不会手动解决它们。我用它拥有的任何内容删除该文件,然后运行" composer update"再一次。这将创建一个新的锁定文件,该文件尊重composer.json中的所有当前依赖项。如果允许,它可能会更新到更新的版本,但我认为这没关系。这是一个一分钟的过程 - 如果事情中断并且测试失败,那么合并可能比锁定文件中的冲突有更多问题。