3

该问题与“如何在致命文件系统错误后恢复 Git?”问题有关。,但对于单个文件。

我需要到达最后一个状态 2009-07-27 23:58,我需要文件:

/Users/henri/BAckup/6-relationdiagram/Normalized_perhaps_DB/simple_schema0.tcuml

崩溃后如何恢复文件?

补充:我在哪里可以找到文件?他们应该做什么?

格雷厄姆的小贴士

$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
4

3 回答 3

4

如果您需要从存储库中的提交中获取单个文件,那么 git checkout 将为您完成。具体来说:

git checkout <sha> <filename>

将从提交 <sha> 中检索文件 <filename> 到您当前的工作副本中。可以是对任何提交的任何引用,因此它可以是分支名称、标签名称、HEAD^^^^ 或任何你想要的东西......

于 2009-07-28T11:41:28.687 回答
2

有时我会删除本地 git 中的文件或目录,而我只想恢复该文件。我运行以下命令:

 git checkout -- filenameOrDirectory

注意中间的空格。

于 2016-03-25T00:15:52.447 回答
1

您在任何地方都有未损坏的存储库副本吗?如果是这样,请从那里拉到您的工作目录,然后签出该文件。你可以做:

git log --since='2009-07-27 23:58' --pretty=oneline -n​​ 1

获取您想要的哈希,然后通过以下方式获取文件:

git checkout <文件> <哈希>

如果您没有未损坏的存储库工作副本,您可以尝试“git fsck”,但如果文件丢失,您成功的机会很小或为零。

于 2009-07-28T11:53:19.397 回答