我有一个用于生产的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
不能解决问题
答案 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"