代码之家  ›  专栏  ›  技术社区  ›  Elia Weiss

冲突时如何使用'their'合并Git中的分支

  •  2
  • Elia Weiss  · 技术社区  · 6 年前

    我有一个 master A生产分公司 qa 测试分支。

    当我开发一个新特性时,我从master(例如new_branch)创建一个新的分支,使用它进行开发,并将其合并到qa进行测试。

    我使用以下Git别名:

    myc = "!f() { git commit -a -m ${1} && git checkout qa && git merge ${1} && git push origin qa && git checkout ${1}; }; f"

    此策略允许我合并到质量保证团队批准的仅主功能中。


    在我的代码里我有一个 define.inc.php 我设置的地方 define('_STATIC_VER_', '20'); 此计数器自动附加到所有静态css、js文件,例如:

    /themes/css/global.css?sv=20

    因此,每当我更改CSS文件时,我会增加SV计数器,从而强制浏览器重新加载所有静态文件。

    问题是-当我在开发n1和n2中有两个分支,并且都对 公司简介 我得到

    CONFLICT (content): Merge conflict in config/defines.inc.php

    我必须手动选择 their define.inc.php版本

    如何改进别名命令以始终使用 他们的 什么时候发生冲突?

    注: git merge --strategy-option theirs 不能解决问题

    1 回复  |  直到 5 年前
        1
  •  3
  •   Elia Weiss    6 年前

    git merge -s recursive -X theirs 应该有技巧。

    它总是采用“传入”分支更改 当发生冲突时 但对于所有其他情况来说,表现得像经典的合并

    完整的别名命令是:

    myc = "!f() { git commit -a -m ${1} && git checkout qa && git merge -s recursive -X theirs ${1} && git push origin qa && git checkout ${1}; }; f"

    推荐文章