取消 git rebase 如果已经用力推送

Cancel git rebase if already pushed with force

所以我设法执行了一个变基并将更改推送到 Gitlab 但现在我收到错误并且想取消整个变基并返回到我开始的地方。我在 "feature-branch" 上工作,我做了 "develop" 分支的变基。

我所做的是:

所以现在我的本地分支和远程分支都包含来自变基的更改。无论如何我可以取消整个 rebase 并 push -f 然后再试一次吗?谢谢!

您可以在 rebase 发生之前在分支上找到提交,然后将其重置 -(git log 或 git reflog 会有所帮助)。 GitLab 也有一个网络选项卡,可以让您轻松查看。

git 重新登录的示例,因为这可能是最简单的:

git reflog feature-branch

以上将为您提供一些输出,例如:

73d836b feature-branch@{0}: rebase finished: feature-branch onto e806e41f1fe22624e6546abd65c332c934214891
129e6d3 feature-branch@{1}: commit: Commit message

从上面的输出中获取提交引用(选择最新的好提交所在的点)

git reset --hard {commitRef}
git push -f // this will push your branch back to how it was before rebase

你可以查看 git reflog https://git-scm.com/docs/git-reflog

git reflog feature-branch

然后找到最新的好提交然后

git reset -- hard 129e6d3 

那个数字是提交参考

编辑:

google 搜索后,我发现了这个,https://medium.com/@shreyaWhiz/how-to-undo-a-mistaken-git-rebase-life-saver-2977ff0a0602 这似乎是你的问题