在分支中如何解决合并冲突,而不实际进行合并?

3

我有三个分支:master,develop和hotfix-12345。

hotfix-12345是从master分支分出来的,但需要合并到develop分支。

因此,我需要执行以下步骤:

git checkout develop

git merge --no-ff hotfix-12345

我的合并冲突出现了。好吧,在Visual Studio Code中,对于有冲突的文件,我“接受传入的更改”,然后保存。但是我在develop分支上,所以这些更改仅在develop分支中修复,而不是hotfix分支,我无法推动develop分支,必须是hotfix分支。因此,尝试将本地的hotfix-12345合并到origin develop中仍会导致合并冲突。
如果尝试反向合并(develop到hotfix-12345),将除合并冲突文件之外的所有内容取消暂存,解决冲突并保存它们,它们不会显示为修改过的文件。
如何在不实际合并develop到hotfix-12345的情况下找到hotfix-12345和develop之间的合并冲突,并解决它们?

你有没有考虑使用cherry-pick呢? - eftshift0
如果hotfix是从master分支创建的,为什么要将已解决的hotfix和develop之间的冲突推回到hotfix?一旦你在master上进行了修复,将hotfix合并回master,然后将hotfix(或master)合并到develop并解决冲突,那么你应该就可以继续进行了。查找gitflow以及hotfix分支通常如何解决到主分支和开发分支。 - John
1
@John 我查阅了各种文章,我知道最终的结果应该是什么样子,但我无法达到这个过程。最终结果应该是:hotfix <-> master之间的差异=只有hotfix中的更改,因为hotfix是从master分支分离出来的。hotfix和develop <->之间的差异=目前在develop中提交的尚未推送到master和hotfix分支更改的提交,但我不知道如何解决hotfix中的冲突,以便hotfix和master之间的唯一更改是hotfix +合并冲突解决&& dev && hotfix之间的更改是dev中的所有内容+ hotfix。 - Erik B
1个回答

1
如何在不将develop合并到hotfix-12345的情况下找到合并冲突并解决它们?一种可能的方法是将hotfix分支变基在origin/develop之上:您可以在那里解决冲突,然后撤消一些您不想在hotfix中使用的origin/develop更改。 选择完成后,您可以推送hotfix,而develop保持本地和未经触动。
git checkout hotfix
git rebase origin/develop
git rebase 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接