我正在开发一个 github 项目的分支,并希望将其更改合并到我的分支中,这样我就可以打开拉取请求。然而,我在合并过程中犯了一些错误,最终恢复到之前的合并。 Git 现在说我的分支领先于原始项目,但事实并非如此。我已经创建了另一个分支,它仍然是我合并之前的最新提交,github 说这是我的 master 分支后面的一些提交。有没有办法回到我的主分支既落后又领先原始项目的阶段,这样我就可以再次尝试合并它们?
我尝试了多种方法,例如用较旧的提交手动替换存储库的内容,分支之间合并的不同组合,但无济于事。
使用 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'
,然后可以将其合并到原始项目中。