2010-11-20 73 views

回答

108

由于Git是一个分布式VCS,本地资源库包含了所有的信息的伎俩。不需要下载;你只需要在指尖提取你想要的回购内容。

如果你还没有犯下的缺失,只是检查出从当前的文件提交:

git checkout HEAD <path> 

如果你犯了删除,您需要从检查出的文件提交有他们。据推测,这将是一次提交:

git checkout HEAD^ <path> 

但如果它是n提交前,使用HEAD~n,或者干脆火起来gitk,找到相应的SHA1提交,然后将其粘贴在

+1

就像一个旁注,这也适用于一个完整的目录,它对于一个单独的文件没有特别的或特定的(当我至少尝试它时它就起作用了)。 Thnx顺便说一句。 – 2016-02-29 16:53:34

+0

N.B. ''是强制性的,即使只是当前目录的'.'点。但“分支”(上例中的“HEAD”)是可选的。和许多Git命令一样,输出和帮助都没有帮助。 – MarkHu 2017-11-17 08:27:50

2

你需要从你删除的文件之前检查出以前的版本。尝试使用git checkout HEAD^来检出最新版本。

23

git checkout filename

git reset --hard可能做的一样好

+5

在使用'git reset --hard'方法时会警告tho,因为它会将整个树返回到您将HEAD/HEAD ^/HEAD〜n放在w/e位置,并且它会做到没有偏见,并且可能会丢失很多提交... – g19fanatic 2010-11-22 15:19:54

+0

git reset - 为我工作,谢谢男孩:) – 2015-09-28 02:06:14

+0

git checkout filename是我的答案:) – Ruub 2016-01-26 16:01:57

12

如果你。已经删除多个文件在本地但尚未提交,您可以强制结账

$ git checkout -f HEAD 
+0

正如我们从输出“已经最新”中看到的那样,提出这个问题的人最近没有做任何事情。 你应该指定那个git checkout -f HEAD是危险的吗? 因为它可能会撤消未提交的本地更改(恢复以前的文件是积极的结果,将编辑文件的更改丢失为负值)。 – 2017-10-23 12:42:41

0

另外,我想补充做以下步骤,以便git的回购将与IDE正确链接:

$ git reset <commit #> 

$ git checkout <file/path> 

我希望这对我有帮助!

0

如果您在本地删除了多个文件并且未提交更改,请转至您的本地存储库路径,打开git shell并键入。

$ git checkout HEAD . 

上次提交前所有被删除的文件都会被恢复。

添加“。”会将当前存储库中所有已删除的文件恢复到各自的路径。

欲了解更多详情,请查看documentation

相关问题