当我尝试提交时,Github for Windows刚刚遭到轰炸,现在git(命令行)告诉我每个文件都是新的。我还有一个53mb大小的.get文件夹。在此之前我做了大约60到100次提交。
如何在不丢失任何历史记录或更改的情况下恢复工作副本?
Git状态说:
在分支主机上
初始提交
承诺的变更:
(使用“git rm --cached ...”来取消演出)新文件:.gitattributes
新文件:.gitignore
......(1620多个文件)未提交的更改提交:
(使用“git add ...”来更新将要提交的内容)
(使用“git checkout - ...”放弃工作目录中的更改)修改:Src / Foo / Bar / Index.cshtml
未跟踪文件:
(使用“git add ...”包含将要提交的内容)
Posh Git命令提示符如下所示
C:\ Projects \ Foo [master +1623~0 -0 | + 0~1 -0]>
git log
的输出如下
C:\ Projects \ Foo [master +1623~0 -0 | +1~1 -0!]> git日志
致命:错误的默认修订版“HEAD”
更新
我刚刚从Git GUI运行了“验证数据库”,它返回了以下内容:
悬空树4b825dc642cb6eb9a060e54bf8d69288fbee4904悬空提交 30855e0deee8600f10733e6760db54fee2570a38悬空提交 cd8bc69ad56ca5c4d51d0d5028525698158cf3ec悬空提交 c934f9823d907cd69c5e08a0159b9de4dfe3da35悬空提交 f958caca247978db978b70460276b5da7582bb06通知:HEAD指向一个 未出生的分支(主)通知:没有默认参考
答案 0 :(得分:2)
git fsck
,它提供了以下输出。
> dangling tree 4b825dc642cb6eb9a060e54bf8d69288fbee4904 dangling commit
> 30855e0deee8600f10733e6760db54fee2570a38 dangling commit
> cd8bc69ad56ca5c4d51d0d5028525698158cf3ec dangling commit
> c934f9823d907cd69c5e08a0159b9de4dfe3da35 dangling commit
> f958caca247978db978b70460276b5da7582bb06 notice: HEAD points to an
> unborn branch (master) notice: No default references
从这里开始,我用
git checkout <some-hash>
完成上述悬空的哈希。事实证明,最后一次悬挂提交是我最近的提交,所以git checkout c934f9823d907cd69c5e08a0159b9de4dfe3da35
让我在崩溃前回到我的工作副本。
从这里开始我git checkout -b master
在此提交时重新创建了我的主分支。 git status
现在显示了一个更改,即我尝试提交的更改。承诺让我重回正轨。
答案 1 :(得分:1)
首先:不要惊慌。备份项目,包括工作文件夹。嗯......实际上,让两个:)
我还有一个.mbit文件夹,大小为53mb。
Git是一个非常有弹性的工具。对对象数据库的分析可以“重建”您的历史记录。
Moreovoer,GHfW记录了与回购的大部分互动。长话短说,GHfW团队很有可能帮助你拯救你的回购。
所述我们确保在Twitter上阅读每一个提及。如果您发现错误,请将其提交至support@github.com。每封电子邮件都由真人阅读。
发送邮件给他们。喜欢现在。