我变得致命:未能将HEAD解析为有效的参考。每当我尝试提交时。
我试过了
echo ref: refs/heads/master >.git/HEAD
但它不起作用
也试过
git commit
它无法从以下来源工作
Git 'fatal: No such ref: HEAD' git tag: fatal: Failed to resolve 'HEAD' as a valid ref
请帮忙。我的所有提交历史记录也已消失
答案 0 :(得分:12)
我也遇到过同样的问题......我已经通过以下方式解决了
由Sudip Bhandari编辑
为什么这样做?
损坏的git存储库通常是由于突然断电或其他异常导致文件系统损坏的结果。由于git将所有信息存储在.git文件夹中,而且这些信息已损坏,因此git不再识别存储库。
<强>注意事项强>
您以前的.git文件夹中存储的内容将会消失。必须重新设置配置文件,例如遥控器的参考名称(如果您有多个)等。
答案 1 :(得分:1)
我的问题在于
git init
git add .
尝试
git reset
fatal: Failed to resolve 'HEAD' as a valid ref.
git reset --hard
fatal: Failed to resolve 'HEAD' as a valid ref.
解决
git rm -r --cached .
环境
git version 1.7.5.4
Ubuntu 11.10
答案 2 :(得分:1)
就我而言,在分支重命名后,我最终得到了两个名称相同的分支。通过在 .git / refs / heads 中删除其中一个,它们都恢复正常。
答案 3 :(得分:1)
由于磁盘故障,我遇到了此问题。我知道这是一个老问题,但也许可以帮助某人。在我的情况下,我有一个本地分支机构,在我的存储库损坏之前我正在工作,因此重新克隆该存储库不适合我。除了我发现的here这小段代码之外,这里或其他帖子中的任何答案都对我有所帮助。我只是在仓库的根目录中运行了此命令:
echo ref: refs/heads/master >.git/HEAD
此后,我能够执行git branch
,git commit
和所有其他git命令。
我希望这可以帮助某人!
答案 4 :(得分:0)
在蓝屏死机事件发生后,我遇到了这个问题-因此类似于Sudip Bhandari所说。
.git/refs/heads/<mybranch>
,发现该条目已损坏(难以辨认)。该文件应该包含HEAD分支的完整提交ID。.git/refs/heads/<mybranch>
到已损坏的存储库中(我想我可以通过从存储库或其他内容粘贴最近的commit-id来修复它)。git rm -r --cached .
和git reset --hard
的清理工作,然后发现一切又恢复了正常。答案 5 :(得分:0)
此问题的最佳解决方案:
'致命:无法将HEAD解析为有效的引用'
在Eclipse IDE上打开项目
转到项目“团队”菜单,然后选择“切换到”,最后可以切换到 您当前选择的独立分支。
如下面的屏幕截图所示:
答案 6 :(得分:0)
答案 7 :(得分:0)
为什么 - 致命:无法将 HEAD 解析为有效引用?
git 无法找出引用,如果引用头损坏,您可能会看到此问题。
假设最初您从 master 分支中检出一个功能分支,并且由于某些故障您遇到了这个问题。您可以检查头文件的 ref,它应该损坏或没有价值。理想情况下,该文件应该保留提交哈希值。
cat .git/refs/heads/<my-branch>
解决方案 - 替换损坏的 ref 或 ref 值将解决问题。
转到 .git/ref/heads/
并检查您是否已经在那里有一些分支并将提交哈希值复制到您的分支。
cat .git/refs/heads/<branch_with_commit_details> > .git/refs/heads/<my-branch>
或者您可以将源代码克隆到另一个目录中并将相同的哈希值复制到 my-branch
答案 8 :(得分:-1)
只需删除 .git/refs/heads 下的文件。对我有用