【发布时间】:2019-03-02 15:53:25
【问题描述】:
昨天我第一次提交到一个名为award_end_scenario 的分支。我忘记将它推送到 repo 中,并决定更新我的 Git 客户端(Git Kraken)。我在更新的时候停电了,我的本地克隆搞砸了。
以下文件存在:\.git\refs\heads\award_end_scenario,但已损坏:其中没有任何头引用。
所以,我的问题是:我可以做些什么来恢复我的所有工作?我可以以某种方式恢复我的本地分支吗?
当我打开 git 时,它当前位于该分支中,但是一旦我运行 git log 和 git branch -a 就可以看到它的损坏状态,这分别表明当前分支已损坏,并且 HEAD 不是有效引用.
谢谢!
【问题讨论】:
-
git reflog是否提供任何有用的信息? -
致命:您当前的分支似乎已损坏
-
由于损坏的分支是当前“使用”的分支,我能够恢复一些我记得我更改过的文件,因为搞砸的是 git 而不是文件。但是,最好在不依赖我更改过哪些文件的记忆的情况下解决这种情况……
-
可能需要看一下对象数据库,看看有什么可以拯救的……但我对此并不了解。
-
在 git 中的分支只是指向可以随意移动的修订的指针,因此分支不是父级或子级。另一方面,修订确实指向他们的父母。希望对你关于父母的问题有所帮助......无论如何......我的意思是:这个回购看起来一团糟(好像你不知道一样)。也许您可以在旁边(本地)设置一个 repo,将损坏的 repo 设置为新 repo 的远程,然后查看从原始 repo 获取的结果。