我的存储库中有两个分支。其中任何一个都没有未承诺的变化。
我调出了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
其他的似乎都吻合。我没有进入更深的文件夹。也没有尝试比较文件的内容。
发布于 2014-10-03 12:54:21
在检查.git
目录文件之后,我注意到ORIG_HEAD和头文件只包含NULLS。看来我终于想出了解决办法。
index
文件。ORIG_HEAD
文件。HEAD
文件。FETCH_HEAD
(它指向一个Branch1)HEAD
GIT Bash
git status
以检查它是否看到该目录是一个存储库。(它做到了)git reset
命令。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
就是这样。现在它又起作用了。好像我没有对它造成任何伤害。
https://stackoverflow.com/questions/26178420
复制相似问题