首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GIT重基操作因PC崩溃而中断。现在存储库不可用

GIT重基操作因PC崩溃而中断。现在存储库不可用
EN

Stack Overflow用户
提问于 2014-10-03 11:49:45
回答 1查看 1.5K关注 0票数 10

我的存储库中有两个分支。其中任何一个都没有未承诺的变化。

我调出了branch1,查看了branch2,并在branch1上启动了一个branch2重基。

在工作中,我的电脑坏了。

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

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

从那以后我什么也做不了。我不能中止,看不到提交。刚开始的吉特巴什告诉我/some/path/to repo/repo name ((...) | REBASE )

当我编写git status时,它说它不是存储库。

但是,我注意到,我所有的源文件都变成了二进制文件,这意味着,我的未推提交丢失了,除非你们能够帮助我恢复它。

我想重新定位树枝然后推它..。这真是令人沮丧。

编辑1:

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

我现在已经比较了克隆的回购和崩溃的.git的差异。

克隆回购有以下文件夹:

钩子

信息

日志

对象

参考文献

这些档案:

配置

描述

索引

填充参考文献

崩溃的一个有一个名为rebase-apply的额外文件夹,也有额外的文件:

COMMIT_EDITMSG

FETCH_HEAD

ORIG_HEAD

其他的似乎都吻合。我没有进入更深的文件夹。也没有尝试比较文件的内容。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-03 12:54:21

在检查.git目录文件之后,我注意到ORIG_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打开存储库时,一切似乎都恢复了正常,在重基之前。我再次尝试了重基,但是它在提交时停止了,其错误为

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. 被推了。

就是这样。现在它又起作用了。好像我没有对它造成任何伤害。

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

https://stackoverflow.com/questions/26178420

复制
相关文章

相似问题

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