git - 冲突时如何使用 `their` merge git 中的分支

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

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

相关文章:

git - 如何撤销有冲突的 git merge

git - 在重新定位许多提交时如何防止许多 git 冲突?

git - 在 AWS 上设置远程 git 存储库并从 Windows 推送

Git 未跟踪的文件阻止 checkout

git - 如何找到导致特定冲突的上游提交哈希?

git - git如何维护已删除分支的提交?

Git Rebase 还是 Git Merge?

git - git下提交文件时如何控制重命名阈值?

git - 如何压缩一个分支中的提交,同时将它们保留在另一个分支中?

Git:将提交 merge 到不同的分支