【发布时间】:2022-10-21 04:03:47
【问题描述】:
首先,我很抱歉提出这样的问题,因为我确信这是一个简单的问题,但我仍然没有找到解决方案,也无法理解我做错了什么。有些人问了几乎完全相同的问题(壁球部分除外),答案很明显(rebase)但对我不起作用。
我创建了一个分支 A,多次提交,然后我提交了一个合并请求 A->develop,并打开了提交压缩。
在等待 MR 被接受时,我想从分支 A 处理一个新问题。所以我从分支 A 创建了一个分支 B。
在某个时候,分支 A 被合并到了开发中,并且来自 A 的所有提交在开发中被压缩成一个提交。
一旦我在 B 上的工作完成,我创建一个新的 MR B -> 开发。但我不能,因为 develop 已经用 A 的更改进行了更新。因为我的分支 B 中已经有了这些更改,因为我从 A 创建了 B,所以这应该不是问题。但它是。
无论我从 B 做什么:
git merge develop
或者:
git rebase develop
我得到了无穷无尽的虚假冲突清单。
我怀疑问题是我的分支 B 上的提交日志包括分支 A 的所有旧提交,而开发仅包括分支 A 的一个压缩提交。所以它们不被视为相同的提交,即使我遇到冲突没有实际冲突。但我没有解决办法。
任何帮助,将不胜感激。谢谢。
【问题讨论】:
-
git rebase --interactive并手动编辑掉“A”中的提交。或者,如果您的本地分支“A”仍然具有单独的提交git rebase --onto develop A B,这意味着:在 B 中重新设置所有基础,因为 A 进入开发 -
看起来不错,我下次试试。我不得不说我的rebase知识太基础了,在你的回答之后我花了一些时间研究它,现在事情变得更加清晰了。
标签: git merge rebase git-squash