【问题标题】:Why I have a conflict in composer.lock为什么我在 composer.lock 中有冲突
【发布时间】:2021-04-11 01:52:20
【问题描述】:

请解释一下。为什么这里没有冲突: screen without conflict

这里是: screen with conflict

有没有办法避免这种冲突? 非常感谢您的回答。

【问题讨论】:

  • 你真的不能。这就是去中心化源代码控制的本质。当两个人更改同一文件的同一行时,就会发生冲突。
  • 我的问题更多是关于你为什么还要跟踪 composer.lock 文件?几乎每次您在项目上运行 composer update 时,该文件都会更改,并且您在跟踪该文件时并没有真正获得任何收益,因为您团队中的所有开发人员都会经常运行该命令。我通常只将 composer.json 留在我的存储库中,供应商文件夹和 composer.lock 都在我的 gitignore 列表中。

标签: git bitbucket


【解决方案1】:

你的问题很奇怪,因为你展示了不同的东西。 但它表明你没有得到任何东西......因为答案在第二张图片中:“文件已在源和目标中更改”

第一张图片是更改的结果。 (侧节点:以后请直接在问题中包含你的图片)

第二张图片是您尝试合并(或变基)提交时发生的冲突。

这里是:屏幕冲突

事实上,这段代码在你想要合并的 2 个分支中已经改变了(或者做一些等效的事情)。因此,当 git 尝试在与提交对应的文件上应用补丁时,它发现删除的行不是预期的行(有时甚至是上下文行——更改上方或下方的行——刚刚更改)。

因此补丁不能自动应用 (understanding patch file format here could help) 并且 git 要求您解决冲突,即决定您想要保留哪些不兼容的更改(或者需要您的大脑来合并 2 个更改)。

有没有办法避免这种冲突?

没有完美的方法可以避免冲突,因为这只是意味着 2 个人在文件的同一部分工作,因此人类必须做出选择。

您有时可以做的一件事是获得最新版本的更改,然后其他更改之后进行更改。这更像是一个团队组织...

但是当你在分支机构工作时,这并不总是可行的。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-01
    • 2010-10-18
    • 1970-01-01
    • 1970-01-01
    • 2023-01-14
    • 2022-12-18
    • 2023-03-27
    • 2015-06-14
    相关资源
    最近更新 更多