Git:从失败的 rebase 中恢复

标签 git reset rebase

我刚刚尝试重新设置我的一个功能分支的基础,但出现了问题 - 现在我正在尝试找出如何撤消此操作。

在我的功能分支上,我在 develop 上提交了一个我想要在功能分支中也想要的错误修复后,简单地做了一个:git rebasedevelopment。 这给了我:

$ git rebase develop
First, rewinding head to replay your work on top of it...
Rename from '.git/HEAD.lock' to '.git/HEAD' failed. Should I try again? (y/n)? n

error: Couldn't set HEAD
fatal: Cannot update the ref 'HEAD'.
could not detach HEAD

好吧,现在我在这个分支上看到一堆暂存文件,但似乎这个分支上的所有提交仍然完好无损(至少我没有丢失一个:)

我想将此分支恢复到尝试 rebase 之前的样子。不幸的是,在 rebase 之前似乎没有正确设置 ORIG_HEAD ,因为我可以看到它显示在另一个功能分支上的提交旁边(在尝试 rebase 此功能分支之前我对其进行了 rebase )。

重置我当前功能分支上的最后一个可见提交是可行的方法吗?

--曲

最佳答案

您可以使用git reflog要查看它是什么提交,请复制那里的提交号并执行 git reset --hard <number>

关于Git:从失败的 rebase 中恢复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9481735/

相关文章:

html - 重置按钮的作用类似于提交按钮

git rebase : fixup commits but use latest message

git - merge 意外分割的提交

Java 项目和 git 存储库

git - 将子域绑定(bind)到没有 apache 的目录(可通过 ssh 获得)

java - 删除值后重置微调器

caching - 如何处理并发Web用户的重置CS-Script

git,即时压缩提交

git - 滥用 Git 来实现事件存储架构?

Git fatal error : Could not set SSL backend to 'openssl' : already set