eir*_*ios 29 git fatal-error git-log git-branch blue-screen-of-death
这是我的情况:
但是在打字git checkout master命令后突然我的电脑遇到蓝屏死机并且发生意外的力量关闭.在重新启动计算机后,我检查了当前分支的状态,结果我将每个文件都标记为新文件.
现在,我陷入了困境,在git log命令之后我得到了错误
$ git log
fatal: your current branch appears to be broken
Run Code Online (Sandbox Code Playgroud)
如何解决这个问题并恢复我的分支?
我正在使用Windows 7和git bash最新版本
编辑:我不想删除此分支.
小智 34
我在Windows 7上遇到类似的问题.在我的情况下,当前的分支文件(参考./git/HEAD)\.git\refs\heads被破坏了.
我找到了.git\logs\refs\heads具有相同分支名称的当前分支的哈希码.
我.git\logs\refs\heads\xxx通过记事本打开该文件()并将第四个数字(哈希码)复制到(.git\refs\heads\xxx)来解决问题
.git\refs\heads目录中的文件是您的分支.检查这些文件.它们应该只包含一个提交对象SHA-1哈希.这个哈希是你最新提交的SHA-1密钥和你的HEAD.
复制SHA-1密钥并键入
$ git cat-file -t 5917fefd485f655ab369d4e9eeda3c157c03f514
commit
$ git cat-file -p 5917fefd485f655ab369d4e9eeda3c157c03f514
tree b75cab3c54b780075b312be3e878b389a2baf904
parent 8235189aa22169295243d295fb1cc2ff2f8f7cd5
author Ilker Cat <ilker.cat@blabla.com> 1495136738 +0200
committer Ilker Cat <ilker.cat@blabal.com> 1495136738 +0200
Run Code Online (Sandbox Code Playgroud)
第二个输出是提交对象基本上包含的内容.尝试检查主分支中的提交对象是否在.git\refs\heads\master下,其树和父SHA-1密钥是否未损坏.
甚至主分支文件中的一些撇号也会导致"破碎的分支".它必须只包含最新的提交对象SHA-1哈希,而不包含任何其他内容.
如果尝试将分支重命名为命名空间(或文件夹)分支,则可能会遇到此错误.
如果它发生,进入目录.git/logs/refs/heads/<name>和.git/refs/heads/<name>,你会看到现在你的分支是其内部文件的文件夹.
在这两个文件夹中,将文件移出到文件夹的级别,签出该分支,删除现在空的文件夹,现在您应该能够git checkout -b <name>/<subname>无错误地执行 ,或者git branch -M <name>/<subname>.
| 归档时间: |
|
| 查看次数: |
9734 次 |
| 最近记录: |