避免在GIT中合并版本控制文件

时间:2014-12-01 10:47:27

标签: git composer-php versioning

我使用composer来保存一个锁定文件(composer.lock),它存储当前的librariy状态。每当我执行composer update时,此文件都会被重写。后来GIT试图在推/拉上合并它。

(我们总是在不同的开发者机器之间产生应该被忽略的冲突)

有没有办法将composer.lock文件保存在GIT中,但有一些类似于"强制覆盖"政策适用于它?

背景:到目前为止,我在gitignore文件中保留了composer.lock,但这意味着我必须在所有系统上重新运行composer update(而不是composer install)。这需要太多时间。

1 个答案:

答案 0 :(得分:0)

我们在团队中管理这个问题的方法是拥有一个"作曲家锁分支"。我们的团队成员之一负责管理作曲家锁文件,如果我们更改composer.json,更新我们自己的依赖库,或者我们只是想刷新公共库,他会执行所需的任何更新。然后他会将这个锁定文件提交到该分支并推送。

当开发人员准备好选择加入'他们从composer-lock-branch合并到的更新只是"选择他们的"在解决冲突期间。

composer-lock-branch是我们的json和lock文件的规范参考。 它是唯一对文件进行任何更改都是神圣的地方。 这是该分支上发生的唯一变化。

但一般来说,你应该准备丢弃你的作曲家锁文件并随时从composer.json重新生成它。这是假设您已正确设置依赖关系并且没有跟随太多不断变化的dev-x分支。如果您将语义版本依赖关系仅定位到错误修复,即x.y. *(例如1.3。*),则更新过程不应该破坏任何内容,锁定变得不那么重要。