问题与问题"How to restore Git after fatal file system error?"有关,但与单个文件有关。
我需要进入最后状态2009-07-27 23:58,我需要文件:
/Users/henri/BAckup/6-relationdiagram/Normalized_perhaps_DB/simple_schema0.tcuml
如何在崩溃后恢复文件?
ADDED:我在哪里可以找到该文件?他们应该做什么?
格雷厄姆的提示
$git checkout 63c6844fded9cfcdee14c9330be82557046b3e56 HENRI_suunnittelu_doc/6-relaatiotietokantakaavio/Normalized_perhaps_DB/simple_schema0.tcuml
威廉的提示
git checkout bee6763b55cf8259438aa575cedbb09d1d02b96a HENRI_suunnittelu_doc/6-relaatiotietokantakaavio/Normalized_perhaps_DB/simple_schema0.tcuml
答案 0 :(得分:4)
如果您需要从存储库中的提交中获取单个文件,那么git checkout将为您执行此操作。具体做法是:
git checkout <sha> <filename>
将检索文件&lt; filename&gt;来自提交&lt; sha&gt;进入你当前的工作副本。可以是对任何提交的任何引用,因此它可以是分支名称,标记名称,HEAD ^^^^,或者任何你想要的东西...
答案 1 :(得分:2)
有时我删除了我的git local中的文件或目录,我想只恢复该文件。我运行以下命令:
git checkout -- filenameOrDirectory
注意两者之间的空格。
答案 2 :(得分:1)
您是否在任何地方都有未经破坏的存储库副本?如果是这样,请从那里拉到您的工作目录,然后签出文件。你可以这样做:
git log --since='2009-07-27 23:58' --pretty=oneline -n 1
获取您想要的哈希值,然后通过以下方式获取文件:
git checkout <file> <hash>
如果您没有未经破坏的存储库工作副本,您可以尝试'git fsck',但如果文件丢失,您的成功几率很小或为零。