Gitlab 无法将恢复的分支与另一个分支合并

Posted

技术标签:

【中文标题】Gitlab 无法将恢复的分支与另一个分支合并【英文标题】:Gitlab cannot merge reverted branch with another branch 【发布时间】:2021-03-20 12:02:02 【问题描述】:

我有一个 gitlab 问题。假设我有分支 A、B、C。 我曾经将分支 B 合并到分支 A 并将分支 A 合并到分支 C。然后我在分支 C 中做了一些提交,我才意识到我合并了错误的分支。然后,我查看了分支 C 的提交历史记录,并尝试将每个提交从最后一个恢复到我提交的将分支 C 与分支 A 合并的那个。现在,当我尝试将分支 B 与分支 C 合并时,它说“不能合并这个分支。源分支是目标分支后面的 X 提交”或类似的东西。

需要注意的是,所有的更改都不是在本地分支中,而是在远程分支或服务器分支中。

我该如何解决这个问题?

【问题讨论】:

【参考方案1】:

如果你一个人在分支 C 上工作,我会 reset --hard 在将 A(错误分支)合并到 C 之前提交。

然后我会做正确的合并,并重新制作我之前所做的新提交。

最好在本地完成,在克隆 GitLab 存储库后,考虑到 menu associated to a commit in GitLab Web UI 只允许还原,而不是重置。

本地修复完成后,您将需要git push --force 以使用新的本地历史记录覆盖远程 C。

【讨论】:

我所做的一切都在 gui 上,现在,我是否可以在特定提交上克隆 repo,然后在该提交上执行 git push --force?这样分支现在被重置到特定节点? @tns2307 你只是克隆,然后重置到特定的提交,然后强制推送。 因此在我从分支重置之前我不会丢失提交历史记录,对吧? @tns2307 是的,您将所有内容保持在您重置的提交之前(其余部分仍在 reflog 中) 非常感谢,我想这就是我需要的答案。如果当我在我明天工作的服务器上尝试时问题解决了。我会关闭这个。队友的欢呼声。谢谢。

以上是关于Gitlab 无法将恢复的分支与另一个分支合并的主要内容,如果未能解决你的问题,请参考以下文章

将一个分支与另一个首先提交的分支合并

如何限制将特定分支合并到 Gitlab 中的其他分支?

重新提交在 git 中恢复的提交

在恢复的合并中查找提交

通过 gitlab(或 git)合并分支的最快方法?

使用gitlab cicd自动合并分支