首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何修复“损坏”的交互式rebase?

如何修复“损坏”的交互式rebase?
EN

Stack Overflow用户
提问于 2010-09-10 21:37:24
回答 19查看 129.7K关注 0票数 283

我设法在我本地的git库中创建了一个小混乱。我试图通过使用following instructions来修复一个中断的提交。在运行"git commit --amend“之前(以及在git rebase --interactive之后),我确定我的更改是不正确的,所以我执行了"git reset HEAD --hard”。我告诉你,这不是个好主意。

现在交互式的rebase似乎“卡住”了。Git将当前分支显示为(|REBASE-m)。每个命令(cd ..、ls、git rebase...)在我的存储库中出现以下错误:

rebase cat:.git/

-merge/head-name:没有这样的文件或目录

下面是git rebase --abort的样子:

代码语言:javascript
复制
$ git rebase --abort
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/head-name: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/orig-head: No such file or directory
HEAD is now at 4c737fb Revert "Modified file names"
rm: cannot remove `c:/_work/project/src/git/.git/rebase-merge/done': Permission denied
rm: cannot remove directory `c:/_work/project/src/git/.git/rebase-merge': Directory
not empty
cat: .git/rebase-merge/head-name: No such file or directory

下面是git rebase的结果--继续:

代码语言:javascript
复制
$ git rebase --continue
cat: c:/_work/project/src/git/.git/rebase-merge/prev_head: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/end: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/msgnum: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/onto: No such file or directory
cat: c:/_work/project/src/git/.git/rebase-merge/quiet: No such file or directory
prev_head must be defined
cat: .git/rebase-merge/head-name: No such file or directory

有什么想法吗?我想将情况重新设置为我开始深思熟虑的rebase操作之前的状态。

下面是git log --oneline显示情况的方式:

代码语言:javascript
复制
4c737fb Revert "Modified file names"
247ac02 Modified file names
33141e6 Message modifications
10a4a04 Modified db script

这个很好。

我使用的是msysgit v1.7.0.2。

EN

回答 19

Stack Overflow用户

回答已采纳

发布于 2010-09-11 02:47:31

看起来Git试图删除.git/rebase-merge目录,但无法完全删除它。你有没有试过把那个文件夹复制走?如果.git/rebase-apply文件夹存在,还要复制该文件夹。

票数 209
EN

Stack Overflow用户

发布于 2019-03-01 04:02:23

我被困在这里了。我创建了head-name文件,然后我遇到了另一个错误,说找不到onto文件,所以我创建了那个文件。然后我收到另一个错误,说无法读取‘.git/rebase-apply/ or’:没有这样的文件或目录。

因此,我查看了用于rebasing的git documentation,发现了另一个命令:

代码语言:javascript
复制
git rebase --quit

这让我回到了我的分支上,没有任何变化,我可以重新开始我的rebase,像新的一样。

票数 466
EN

Stack Overflow用户

发布于 2011-01-21 18:37:10

由于僵尸vim.exe进程,我也遇到了类似的问题。在任务管理器中杀死它,然后用git rebase --abort修复它。

票数 91
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3685001

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档