如何在以前的分支等待合并时处理新的 git 分支



首先,我很抱歉问这样的问题,因为我确信这是一个直截了当的问题,但我仍然没有找到解决方案,也没有办法理解我做错了什么。有些人问了几乎完全相同的问题(除了壁球部分),答案很明显(rebase),但对我不起作用。

我创建一个分支 A,多次提交,然后提交一个合并请求 A->develop,并打开提交 squash。

在等待 MR 被接受的同时,我想从分支 A 处理一个新问题。所以我从分支 A 创建一个分支 B。

在某个时候,分支 A 被合并到 开发中,并且来自 A 的所有提交在开发中压缩为单个提交。

一旦我在 B 上的工作完成,我就会创建一个新的 MR B -> 开发。但我不能,因为开发已经更新了 A 的更改。 由于我的分支 B 中已经有这些更改,因为我从 A 创建了 B,所以这应该不是问题。但事实确实如此。

无论我从 B 做什么:

git merge develop

或:

git rebase develop

我得到了无穷无尽的虚假冲突清单。

我怀疑问题是我的分支 B 上的提交日志包括分支 A 的所有旧提交,而开发仅包括分支 A 的一个压缩提交。因此,它们不被视为相同的提交,即使没有实际冲突,我也会遇到冲突。但我没有解决方案。

任何帮助将不胜感激。谢谢。

是的,您正在尝试在 development 和 A 的合并提交之上再次重定所有提交develop..A的基数。

最好是使用rebase --onto

git rebase --onto develop $last_commit_of_A B

或者在没有--onto的情况下运行,然后为那些已经合并的提交执行git rebase --skip

或者使用交互式变基(git rebase -i develop B)并删除(或更改操作以"删除")已合并为A的一部分的行。

最新更新