我的电脑坏了,现在我的一个git存储库坏了.当我试图结账大师时,它告诉我:
warning: ignoring broken ref refs/heads/master.
error: Your local changes to the following files would be overwritten by checkout:
com.vainolo.jdraw2d.releng.p2/pom.xml
Please, commit your changes or stash them before you can switch branches.
Aborting
Run Code Online (Sandbox Code Playgroud)
当我执行时,git stash我得到:
fatal: bad revision 'HEAD'
fatal: bad revision 'HEAD'
fatal: Needed a single revision
You do not have the initial commit yet
Run Code Online (Sandbox Code Playgroud)
那么......我该怎么办?
更新
输出git reflog:
fatal: bad default revision 'HEAD'
Run Code Online (Sandbox Code Playgroud)
不太有希望...输出git fsck:
error: Invalid HEAD
Checking object directories: 100% (256/256), done.
error: unable to unpack 59551f96b4e87a1c14293c19eb548ce6fa1f196f header
error: inflateEnd: stream consistency error (no message)
fatal: loose object 59551f96b4e87a1c14293c19eb548ce6fa1f196f (stored in .git/objects/59/551f96b4e87a1c14293c19eb548ce6fa1f196f) is corrupt
Run Code Online (Sandbox Code Playgroud)
jfr*_*mar 169
我设法通过以下方式恢复:
rm .git/refs/remotes/origin/HEAD
git fetch --all
Run Code Online (Sandbox Code Playgroud)
kyn*_*nan 21
首先按照恢复损坏的git存储库中建议的步骤操作:
.git/refs还包含任何有用的内容git reflog并确认.git/logs/refs/heads/master您所持的任何分支的内容或失败git fsck,可能与--unreachable或--lost-found这有望让你弄清楚masterref应该是什么,这样你就可以恢复它(即将正确的SHA1转换成.git/refs/heads/master).
如果该提交中包含的任何对象确实已损坏,则无法恢复您的HEAD提交.假设您的工作树和/或索引是完整的,您可以尝试git reset --soft(或失败a git reset)前一次提交,然后重新执行提交.避免任何改变工作树sa git checkout -f或git reset --hard.
Car*_*ton 11
我在Windows 8.1的蓝屏死机后遇到了类似的问题
我在这个位置有一个文件......
C:\www\<project>\.git\refs\remotes\origin\<problem-branch>
它是空的,而此文件夹中的其他分支文件内部有长字符串.
NB我没有任何更改/提交
<problem-branch>文件git fetch --all 再次获得分支然后选项卡自动完成再次开始工作
如果没有很多修改过的文件,我认为解决这个问题的方法是:
git commit -a 经过计算的冻结和崩溃后,我的 git 分支被损坏并显示以下消息:
git fatal: your current branch appears to be broken。我无能为力。
做完后git fsck提到该分支机构有一个error: Invalid HEAD.
refs/heads/<branch>有一个invalid sha1 pointer。
按照此处的选项后,我.git/refs/heads/<branch>在 notepad++ 编辑器中打开,每个 sha1 字符都是NUL.
幸运的是,我只需要将分支重置为远程状态,而且那是在 bitbucket 存储库上。我从远程存储库的尖端抓取了 sha1 并复制到.git/refs/heads/<branch>保存的它,然后执行了git reset --hard HEAD,一切都恢复正常。
| 归档时间: |
|
| 查看次数: |
39475 次 |
| 最近记录: |