【发布时间】:2020-10-16 15:33:27
【问题描述】:
我记得我做过一些事情,比如提交我的更改(在我的功能分支上)并与远程分支(不是主分支)合并。然后为了确保我的提交位于合并提交之上,我重新设置了最后两个提交并更改了顺序。我推动了这些变化,其他人也在此基础上做出了承诺。
现在,发生的事情是一些合并提交是用不同的提交 ID 挑选的,现在当我创建拉取请求时,它显示为我的。我可以理解这是因为相同的更改来自不同的提交 ID 在我的分支中,因此它显示为其他人创作的并且我提交了但更改没有显示在文件选项卡中,因为更改已经存在。
这是我的参考日志
HEAD@{12}: rebase -i (finish): returning to refs/heads/my_branch_name
NEW COMMIT ID HEAD@{14}: rebase -i (pick): Messed up merge commit
NEW COMMIT ID HEAD@{15}: rebase -i (pick): Messed up merge commit
NEW COMMIT ID HEAD@{16}: rebase -i (pick): Messed up merge commit
NEW COMMIT ID HEAD@{17}: rebase -i (pick): Messed up merge commit
添加了一些提交,但在此之后其他人和我以及这个分支被其他几个人使用。我不知道如何解决这个问题。
我能想到的一个想法是恢复所有这些提交,但这将创建另外 4 个提交。
有什么办法可以解决这个问题吗?
【问题讨论】:
-
当你在一系列包含一个或多个合并提交的提交上 rebase 一个分支时,你通常必须在 rebase 进行时重做合并。大多数时候,基于合并提交的 rebase 并不是您想要做的。
标签: git git-merge git-rebase git-reflog