首页 > 解决方案 > 在 git 中合并两个冲突的分支时,如何明确提及要应用哪些分支更改?

问题描述

我在 git 中有两个分支。大师和特色。

O---O (master)
 \ 
  O (feature)

我有一个文本文件,其中包含Master它在主分支头的时间。当它位于功能分支头时,
包含相同的文件。feature

我想将功能分支重新设置为 master。由于它们都有冲突的更改,因此将存在 rebase 冲突(或合并冲突)。

我想知道是否有办法明确告诉 git,我想在 rebase 期间从功能分支中的功能分支进行更改。

这是我尝试过的:

显示设置的图像

图片显示错误

我们可以清楚地看到功能分支文本被主分支文本覆盖。

提前致谢 :)

标签: gitgithubrebasemerge-conflict-resolutiongit-merge-conflict

解决方案


如果要将分支变基到feature分支上master,并在发生任何合并冲突时将分支上的更改feature覆盖master分支,则必须传递--strategy-optionwiththeirs而不是ours.

当您在feature分支上签出并想要重新定位masterfeature时,git rebase会通过在feature分支顶部重放分支的每个提交来工作master。因此,当发生合并冲突时,报告为我们的一方是master分支,而他们的一方是工作分支,即feature分支。

git rebase的文档中:

Rebase 合并通过在上游分支之上重放工作分支的每个提交来工作。正因为如此,当发生合并冲突时,报告为我们的一方是到目前为止的 rebase 系列,从上游开始,他们的一方是工作分支。换句话说,双方交换了。

所以尝试一下git rebase master --strategy-option=theirs,这将确保feature在合并冲突的情况下考虑分支更改。


推荐阅读