如何在冲突时使用“他们的”合并 git 中的分支

How to merge branch in git using `their` when in conflict

我有一个 master 生产分支和一个 qa 测试分支。

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

我使用以下 git 别名:

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

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


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

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

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

问题是 - 当我在开发中有 2 个分支 n1、n2,并且都对 define.inc.php 进行了更改时,我得到

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

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

如何改进我的别名命令以在发生冲突时始终使用 their

注意:git merge --strategy-option theirs 没有解决问题

git merge -s recursive -X theirs 应该可以解决问题。

当存在冲突时,它总是采用 "incoming" 分支更改 ,但对于所有其他情况

表现为经典合并

cmd 的完整别名是:

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