冲突时如何使用`their`合并git分支

时间:2018-07-30 07:23:27

标签: git git-merge git-merge-conflict merge-strategy

我有一个用于生产的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"

通过这种策略,我可以将仅由质量检查团队批准的主要功能合并到主机中。


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

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

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

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

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

,我必须手动选择{de1.inc.php'的their版本

在冲突时如何改善别名命令以始终使用their

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

1 个答案:

答案 0 :(得分: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"