如何 git 恢复到我的分叉既位于上游又位于上游之前的点?

问题描述 投票:0回答:1

我正在开发一个 github 项目的分支,并希望将其更改合并到我的分支中,这样我就可以打开拉取请求。然而,我在合并过程中犯了一些错误,最终恢复到之前的合并。 Git 现在说我的分支领先于原始项目,但事实并非如此。我已经创建了另一个分支,它仍然是我合并之前的最新提交,github 说这是我的 master 分支后面的一些提交。有没有办法回到我的主分支既落后又领先原始项目的阶段,这样我就可以再次尝试合并它们?

我尝试了多种方法,例如用较旧的提交手动替换存储库的内容,分支之间合并的不同组合,但无济于事。

git github merge git-merge git-revert
1个回答
0
投票

使用 git rebase 而不是合并原始项目。

解释,据我了解(A、B、C、D...是提交。)

原始项目:

A - B - C - D

分叉后立即分叉:

A - B - C - D

同时进行的原始项目:

A - B - C - D - E

您的功能编辑后的分叉(此时您的主控):

A - B - C - D - F

您希望在原始项目中拥有什么:

A - B - C - D - E - F - (M1)

其中 (M1) 是用于合并更改的合并提交。

您现在可能拥有的:

您的第二个分支:

A - B - C - D - F

你的主分支(可能):

A - B - C - D - F - E - (M2) - (M3)

其中 (M2) 是你合并,(M3) 是恢复 M2。

您现在想要的是将提交 F 重新设置为 A-B-C-D-E,这将产生略有不同的提交 F'(具有不同的时间戳)和树

A-B-C-D-E-F'
,然后可以将其合并到原始项目中。

© www.soinside.com 2019 - 2024. All rights reserved.