代码之家  ›  专栏  ›  技术社区  ›  Nick

为什么GitLab说自从上次合并以来没有提交到目标分支时会有冲突?

  •  4
  • Nick  · 技术社区  · 6 年前

    我们使用GitLab.com网站为了我们的项目。我们正在将代码合并到发布分支中( master )从我们的QA部门( qa ). 自大约一个月前的上一个版本以来,没有提交到主分支。

    对于一些项目,GitLab的UI中的自动合并失败了,我不得不这样做 通过命令行手动执行 通过GitLab的UI解决冲突。我不明白这是怎么发生的,因为没有任何变化 主人 与…冲突。

    qa      --●--●--●--●--●--
               \           \
    master  ----●-----------●--
    

    质量保证 不管怎样分支( git merge -X theirs ). 它也不是所有的文件(谢天谢地!),5个文件中只有5-10个更改,比如说,50个文件中有300个更改。

    但我不明白是什么引发了这些冲突。

    注意:我确实从 当合并到 主人 . 现在我想这可能是问题的一部分。还是不知道怎么做。

    1 回复  |  直到 6 年前
        1
  •  7
  •   Nick    6 年前

    在UI中无法工作的合并 完全

    问题是GitLab正在从目标分支进行自动合并提交 在所需方向合并之前的秒数。我验证了有“冲突”的项目都发生了这些错误的合并。它们也是没有手动合并的项目。

    $ git log --abbrev-commit --graph qa master
    
    *   commit 92xxx (tag: v1.3.1, tag: v1.3.0, origin/master, origin/HEAD, master)
    |\  Merge: 83xxx 7fxxx
    | | Author: Nick
    | | Date:   Fri Sep 7 00:52:37 2018 +0000
    | |
    | |     Merge branch 'qa' into 'master'
    | |
    | |     v1.3
    | |
    | |     See merge request translations!17
    | |
    | * commit 7fxxx
    |/  Author: Nick
    |   Date:   Fri Sep 7 00:52:37 2018 +0000
    |
    |       v1.3
    |
    | *   commit c14xxx (HEAD -> qa, origin/qa)
    | |\  Merge: 76xxx 83xxx
    | |/  Author: Nick
    |/|   Date:   Fri Sep 7 00:52:29 2018 +0000
    | |
    | |       Merge branch 'master' into 'qa'
    | |
    | |       # Conflicts:
    | |       #   langs/en-US.json
    | |
    * |   commit 83xxx (tag: v1.2.1, tag: v1.2.0)
    |\ \  Merge: 08xxx 73xxx
    | | | Author: Nick
    | | | Date:   Fri Aug 3 14:09:04 2018 +0000
    | | |
    | | |     Merge branch 'qa' into 'master'
    | | |
    | | |     Merge for v1.1.2
    | | |
    | | |     See merge request translations!13
    | | |
    m   qa
    

    master 是左边的线。 83xxx 上次发布的合并。 主人 自上次发布以来没有提交,除了这个无法解释的错误合并。

    对于GitLab为什么要这么做,也许是一个bug,仍然感到困惑。下次创建有这些奇怪冲突的合并请求时,我会将它们保留为打开状态,以查看它是否确实在创建过程中创建了错误的合并请求。

    更新日期:2018年12月

    再次发布时间。我注意了。还是不能百分之百确定发生了什么。启动翻译项目的合并请求,该项目没有提交到 主人 qa .

    冲突。我看着他们。没有任何意义。在另一个选项卡中刷新回购时未注意到任何提交。单击UI中的“解决冲突”,完成冲突解决后,将创建来自主控的提交->qa。这只是Gitlab实现的合并方式。您可以通过将master拉入QA来解决冲突,然后重新合并。它在UI的冲突解决页面中这样说