【问题标题】:Avoid merging versioning files in GIT避免在 GIT 中合并版本控制文件
【发布时间】:2014-12-01 10:47:26
【问题描述】:

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

(我们总是会在不同的开发机器之间遇到冲突,应该忽略)

有没有办法将 composer.lock 文件保留在 GIT 中,但对其应用“强制覆盖”策略?

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

【问题讨论】:

标签: git composer-php versioning


【解决方案1】:

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

当开发人员准备“选择加入”更新时,他们会从 composer-lock-branch 合并并在冲突解决期间简单地“选择他们的”。

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

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

【讨论】:

    猜你喜欢
    • 2015-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-19
    • 2012-12-09
    • 2010-11-29
    相关资源
    最近更新 更多