gpt4 book ai didi

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

转载 作者:太空狗 更新时间:2023-10-29 12:45:19 34 4
gpt4 key购买 nike

我的存储库中有 2 个分支。其中没有任何未提交的更改。

我 pull 了 branch1,检查了 branch2,并在 branch1 上启动了 branch2 rebase。
在工作过程中,我的电脑死机了。

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

我试图点击abort rebase,但它说该文件夹不是 git 存储库或任何父级

从那以后我什么都做不了了。我无法中止,看不到提交。打开 git bash 只是告诉我 /some/path/to repo/repo name ((...) | REBASE )

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

好吧,我不太关心失败的 rebase 但是,我注意到我所有的源文件都变成了二进制文件,这意味着我的 unpushed 提交都丢失了,除非你们能帮忙我恢复它。

我想对分支进行 rebase 并推送它......这令人沮丧。

编辑 1:

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

我现在已经比较了克隆存储库和崩溃存储库的 .git 目录。

克隆的 repo 有这些文件夹:
Hook
信息
日志
对象
引用资料
这些文件:
配置
描述

索引
打包引用

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

其他一切似乎都匹配。我没有进入更深的文件夹。并且没有尝试比较文件内容。

最佳答案

检查 .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,但它在其中一个提交处停止了,错误为
错误:无法解压 d447b241eba771f175cb2150eec77ec605a86486 header
错误:inflateEnd:流一致性错误(无消息)
致命:d447b241eba771f175cb2150eec77ec605a86486 不是有效对象

  1. 我将存储库(从本地 GIT 服务器)克隆到另一个文件夹。
  2. 将源文件从恢复的存储库复制到新克隆的存储库。
  3. 检查它是否向我显示我所做的所有更改都是正确的,并且没有丢失任何提交。
  4. 将所有更改作为 1 次提交提交(好吧)。
  5. push 。

就是这样。现在它又开始工作了。看来我没有对它造成任何损坏。

关于GIT Rebase 操作因 PC 崩溃而中断。现在存储库不可用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26178420/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com