对主分支进行变基

4

有两个分支,一个是主分支,另一个带有一个功能的分支。但是这个功能分支与主分支有冲突。人们告诉我,我应该将功能分支与主分支合并。

这是否意味着我在功能分支上,应该使用git rebase origin/main 命令,还是在主分支上,应该使用 git rebase feature_branch命令?

重要的是,在git merge PRODUCTION期间,不能出现冲突,并且必须通过rebase命令解决。如何操作?

1个回答

9
那意味着:
git fetch
git checkout feature
git rebase origin/main

你需要在更新过的origin/main上本地重放feature分支。这将让你有机会在本地解决任何冲突,然后推送feature分支(使用git push --force因为它的历史已经改变):确保你是唯一一个在该分支上工作的人。
(正如aduch评论中提到的,如果之前从origin/main合并到feature,则理论上可能需要git rebase -p origin/main。请参见"如何仅基于最新合并后的提交进行变基?"。 但这也意味着,在这种情况下,进行一次git合并比进行git变基更可取,因为前者具有保留过去合并的复杂性)
如果你不是唯一在该分支上工作的人,则可以将origin/main合并到feature,在那里解决任何冲突,然后推送feature(普通推送)。

我完成了三个步骤,然后解决了冲突。然后我不在任何分支上。在提交之前,它询问是否要切换到某个分支,我想将其提交到该分支,因此我切换到功能分支,实际事物和功能分支之间存在冲突,我进行了合并,现在我回到了原来的位置。功能分支仍然与主分支冲突。 - mare.zim
@user3599497 请在一个新的克隆中尝试相同的步骤。确保您可以干净地检出功能(不应该有任何消息)。然后开始合并。 - VonC
推荐使用-p选项来保留合并提交吗? - axelduch
只有在需要保留合并提交记录的情况下,我才会选择合并而不是变基。无论如何,如果需要保留合并提交记录,我都会进行新的合并操作。我已经编辑了答案以反映您的评论。 - VonC

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