【发布时间】:2012-11-05 15:44:41
【问题描述】:
我的项目基于我从original Symfony SE repository 克隆的 Symfony 标准版。 Symfony 当然会分发它自己的 composer.json 和 composer.lock 文件,并注明其依赖关系。
我使用master 分支进行我的项目开发,并且自从启动项目以来,我已将我自己的项目的依赖项添加到composer.json 并使用composer.lock 锁定它们。
但现在是时候更新我的项目以使用 Symfony SE 2.1.3。
我将 Symfony 标准版存储库添加为 git 远程:
git remote add symfonyse git://github.com/symfony/symfony-standard.git
我可以合并来自symfonyse 存储库 2.1 分支的最新更改,以获得最新的 2.1 开发:
git pull symfonyse 2.1
拉到那里之后当然是合并冲突,因为我已经用我自己的依赖项修改了composer.json,而composer.lock 之前被锁定到我的旧依赖项。
但是现在冲突的composer.lock 正试图将最新的 Symfony2 SE 锁定依赖项合并到我自己项目的锁定依赖项中(包括我的部门和 Symfony 2.1.0 的部门)。手动合并这将非常繁琐!
在composer.lock 中解决这些冲突的最佳方法是什么?
我是否应该通过执行git checkout -- composer.lock 来忽略composer.lock 中的合并冲突,这会在我启动合并之前将composer.lock 恢复为其内容?我想我可以为 Symfony2 SE 需要的每个依赖项运行 composer update,这些依赖项已在我刚刚合并的新 composer.json 更改中更新。
或者我应该接受与composer.lock 合并的所有更改,提交它们,然后通过运行composer update 简单地更新我的所有项目依赖项?无论如何,这实际上会生成一个全新的锁文件,其中包含 Symfony 2.1.3 和我自己的依赖项的锁。如果我还获得了最新的composer.json 更改,我只是不确定是否需要对锁定文件进行上游更新。
【问题讨论】:
标签: git symfony composer-php