在我的硬盘损坏后,我试图恢复我的代码库并确保它们正常,但似乎已经发生了损坏,我直到现在才注意到这个问题。
我的代码仍然完好无损,但我的历史记录已经不复存在。
E:\Programming\exercism>git log --oneline
2c9cbb3 (HEAD -> master, origin/master) .gitignore clojure update
b5a05e1 ?
f2c891c ?
(?
提交是我试图弄清楚发生了什么,当时我不知道我正在提交整个存储库...因为它不存在。我在VS Code中提交了这些更改)
我在主驱动器上备份的副本也遇到了完全相同的问题,没有提交(直到我做出第一次初始提交)和历史记录,但所有代码仍然完好无损。
涉及到的存储库在这里。
我已经到处搜索相关话题却毫无结果,似乎这个问题相当罕见。
编辑:当前情况的进一步解释:
当前我的存储库中只有3个提交,通常应该有40-60个提交。
我的驱动器受到损坏,我不得不将所有东西转移到其他地方,包括一些受损的代码库。也许其中一些受损更严重,或者我做了一些导致它们被删除或无效的事情,我不知道,但今天我想要处理我的代码库时,我发现所有的更改都在等待提交,于是我提交了,不知道我的代码库已经不存在提交记录,或者我之前做了什么。我仍然不知道为什么,因为我确信之前已经验证过这个代码库没问题,但无论如何,这个代码库的变更(3次提交)现在存在于GitHub上,而不是应该有的30-40次提交。我想回到提交和推送这些更改到GitHub之前的状态,我知道这应该是可能的,因为我认为GitHub可以并且应该存储这样的更改,而且很难犯这样的错误。编辑2:我决定放弃,我的原始代码库的备份无法恢复...
无论如何,GitHub支持非常缓慢-一个月过去了他们才回复,而我只是在寻找完全不同的东西时注意到了这封电子邮件。他们能回复还是挺好的,但要小心可能不会得到及时的回复。
?
- 看起来它并没有损坏(你在本地代码库消失之前进行了推送,对吧?),但一直以来就是这样的。你期望代码库有多少次提交(目前有3次)? - knittlgit fsck
还会告诉你有关“悬空”对象的信息,这些对象不再从你的头部(即分支或标签)可达。如果你发现任何悬空的提交,请使用git log
或gitk
进行检查。也许你仍然可以找到你的历史记录。 - knittl