从我们的本地存储库中删除后,如何从远程git存储库中获取文件/文件夹?

时间:2015-01-31 10:09:48

标签: git github

我从本地存储库中删除了几个文件夹和文件,我刚刚选择了它们并将其删除。 (包括像'图像',' config' ..等文件夹以及一些由我完成修改但不再需要的文件)

我尝试git pull upstream mastergit fetch upstream master将这些文件和文件夹恢复到我的本地存储库。

我所做的基本上就是,

  1. 我从git获得了一个存储库并将其放在本地
  2. 我在本地对某些文件和文件夹进行了一些更改
  3. 我希望有些文件可以使用旧版本(第一步后的内容)
  4. 我想删除文件并将它们取回并从git中再次获取新副本(使用上面的命令,不幸的是它们无法正常工作)
  5. 但我可以创建一个新的本地存储库并拥有原始仓库的克隆。但是它的工作太多了,我也会丢失对剩余文件所做的更改。
  6. *I have used SVN and there I can delete any file from the repo and when I get an update the file will be back. But I don't know how to do that with GIT.*

    那么我有什么方法可以安全地恢复这些已删除的文件并拥有这些新副本。?

    注意:我没有提交删除

1 个答案:

答案 0 :(得分:1)

首次使用git status查看您删除的文件,然后使用git checkout filename_or_dir_name恢复这些文件。

e.g:

# atupal at atupal in /tmp/tmp [18:15:39]
$ git status .
On branch master
Changes not staged for commit:
  (use "git add/rm <file>..." to update what will be committed)
  (use "git checkout -- <file>..." to discard changes in working directory)

  deleted:    a

no changes added to commit (use "git add" and/or "git commit -a")
# atupal at atupal in /tmp/tmp [18:15:41]
$ ls           
# atupal at atupal in /tmp/tmp [18:15:47]
$ git checkout .
# atupal at atupal in /tmp/tmp [18:15:51]
$ ls         
a
# atupal at atupal in /tmp/tmp [18:15:55]
$ 

如果您使用git add file_name暂存了已修改的文件,则在git-checkout之后,恢复的文件为&#34;新鲜&#34;,其他不是。