git - 如何修复 "corrupted"交互式 rebase ?

标签 git msysgit git-rebase

我设法在我的本地 git 存储库中造成了一些困惑。我试图通过使用 following instructions 修复损坏的提交.在运行“git commit --amend”之前(以及在 git rebase --interactive 之后)我认为我的更改不正确,所以我执行了“git reset HEAD --hard”。这不是个好主意,我告诉你。

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

cat: .git/rebase-merge/head-name: No such file or directory

这是 git rebase --abort 的样子:

$ 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 --continue 的结果:

$ 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 显示情况的方式:

4c737fb Revert "Modified file names"
247ac02 Modified file names
33141e6 Message modifications
10a4a04 Modified db script

这很好。

我正在使用 msysgit v1.7.0.2。

最佳答案

我陷入了这个困境。我创建了 head-name 文件,然后我遇到了另一个错误,说它找不到 toon 文件,所以我创建了那个文件。然后我得到另一个错误说无法读取'.git/rebase-apply/onto':没有这样的文件或目录。

所以我查看了 git documentation用于 rebase 并找到另一个命令:

git rebase --quit

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

关于git - 如何修复 "corrupted"交互式 rebase ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3685001/

相关文章:

java - 如何在 Linux 中运行具有多个外部 Jar 文件的 Java 程序 [错误 : Could not find or load main class]

git - 从 git bundle 获取所有分支

windows - 在 Windows 下克隆 git repo 时,我得到 "error: unable to create file <file>... (Is a directory)"

regex - 如何根据 Bash 版本/功能编写条件代码?

git - 在 Git 的根提交之前插入一个 NON-EMPTY 提交?

Git 服务器钩子(Hook),检查代码是否格式化

Git 列出曾经存在过的所有分支

windows - 保持功能分支与 "develop"分支同步的别名

git - 如何对特定提交执行 rebase ?

git - 当本地主分支上没有工作时, git pull --rebase 是否与 git pull 相同?