2

我有一个master生产分支和一个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"

这种策略允许我将 QA 团队批准的仅主功能合并到其中。


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

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

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

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

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

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

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

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

4

1 回答 1

3

git merge -s recursive -X theirs应该做的伎俩。

当发生冲突时,它总是会接受“传入”分支更改,但在所有其他情况下表现为经典合并

完整的别名 cmd 是:

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"

于 2018-07-30T07:43:26.993 回答