PC崩溃导致GIT Rebase操作中断.现在存储库不可用

use*_*105 9 git windows-7 git-extensions

我的存储库中有2个分支.其中任何一个都没有未提交的变更.

我拉了branch1,检查了branch2,并在branch1上启动了branch2 rebase.
在工作中,我的电脑崩溃了.

在它最终启动后,我打开GitExtensions以发现我的存储库是完全空的,我看到闪烁'rebase under way'或类似的东西,我点击它,它弹出我必须选择修复冲突的窗口,这不应该发生.如果我单击"解决",它将打开应显示冲突文件的窗口,当然没有.

我试图点击,abort rebase但它说文件夹是not a git repository or any of the parents.

从那时起,我可以做任何事情.我无法中止,看不到提交.打开git bash告诉我/some/path/to repo/repo name ((...) | REBASE )

当我写git status它时说它不是一个存储库.

好吧,我不会那么关心失败的rebase但是我注意到我的所有源文件都变成了二进制文件,这意味着,我的提交的提交都是LOST,除非你们可以帮我恢复它.

我想重新分支并推动它....这令人沮丧.

编辑1:

.git目录在应用程序库目录(/some/path/to_repo/repo_name/.git)中.当重新应用branch2提交时,PC崩溃了.这意味着branch1提交已经应用于branch2,唯一剩下的就是完成应用branch2提交.并且在应用了10或20次提交后崩溃了.

我现在比较了一个克隆回购的.git direcotries和一个崩溃的回购.

克隆的repo有这些文件夹:
hooks
info
logs
objects
refs
和这些文件:
config
description
HEAD
index
packed-refs

崩溃的文件夹有一个额外的文件夹rebase-apply,也有额外的文件:
COMMIT_EDITMSG
FETCH_HEAD
ORIG_HEAD

其他一切似乎都匹配.我没有深入到文件夹.并没有尝试比较文件内容.

use*_*105 15

检查.git目录文件后,我注意到ORIG_HEAD和HEAD文件只包含NULLS.似乎我终于想出了如何解决这个问题.

  1. 删除index文件.
  2. 删除ORIG_HEAD文件.
  3. 删除HEAD文件.
  4. 制作副本FETCH_HEAD(它指向Branch1)
  5. 将副本重命名为 HEAD
  6. 开业 GIT Bash
  7. 导航到存储库目录.
  8. 然后git status检查它是否看到该目录是存储库.(它做了)
  9. git reset命令.
  10. git rebase --abort命令.

此时,所有二进制源文件都是文本文件.还index重新创建了文件.

当我通过GitExtensions打开存储库时,在rebase之前,一切似乎都恢复正常.我再次尝试了rebase,但是在其中一个提交中停止了错误
error: unable to unpack d447b241eba771f175cb2150eec77ec605a86486 header error: inflateEnd: stream consistency error (no message) fatal: d447b241eba771f175cb2150eec77ec605a86486 is not a valid object

  1. 我将存储库(从本地GIT服务器)克隆到另一个文件夹.
  2. 将已恢复存储库中的源文件复制到新克隆的存储库中.
  3. 检查它显示我所做的所有更改都是正确的,没有任何提交丢失.
  4. 承诺所有更改为1提交(哦).
  5. 推动.

而已.现在又一次工作了.似乎我没有对它造成任何损害.