我有一个用于生产的 master
分支和一个用于测试的 qa
分支。
当我开发新功能时,我从 master 创建一个新分支(例如 new_branch),将其用于开发并将其 merge 到 qa 进行测试。
我使用以下 git 别名:
myc = "!f() { git commit -a -m ${1} && git checkout qa && git merge ${1} && git Push origin qa && git checkout ${1}; }; f”
此策略允许我 merge 到 QA 团队批准的仅主功能中。
在我的代码中,我有一个 define.inc.php
,我在其中设置了 define('_STATIC_VER_', '20');
该计数器自动附加到所有静态 css、js 文件,例如:
/themes/css/global.css?sv=20
这样,每当我更改 css 文件时,我都会增加 SV 计数器,从而强制浏览器重新加载所有静态文件。
问题是 - 当我在开发中有 2 个分支 n1、n2,并且都对 define.inc.php
进行了更改时,我得到了
冲突(内容):config/defines.inc.php 中的 merge 冲突
我必须手动选择“define.inc.php”的他们
版本
如何改进我的别名命令,以便在发生冲突时始终使用他们的
?
注意:git merge --strategy-option 他们的
不能解决问题
最佳答案
git merge -s recursive -X thoses
应该可以解决问题。
当存在冲突时,它总是会接受“传入”分支更改,但对于所有其他情况,它的行为就像经典 merge
完整的别名 cmd 是:
myc = "!f() { git commit -a -m ${1} && git checkout qa && git merge -s recursive -X 他们的 ${1} && git Push origin qa && git checkout $ {1}; }; f"
关于git - 冲突时如何使用 `their` merge git 中的分支,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51588904/