Unable to recover a file in Git
本问题已经有最佳答案,请猛点这里访问。
Possible Duplicate:
Restore a deleted file in a Git repo
我的Git中有两个分支,master和newfeature。在branch newfeature中,我先在终端物理删除了filea,然后在git中删除了。
1 | git rm fileA |
后来,我跑了
1 2 | git add . git commit |
现在,我又需要一份菲拉。我有一个想法,只要切换到分支主机,我就可以把它取回来。显然我错了,因为我找不到鱼片。
我怎样才能用Git取回文件?
首先,您需要找到最新版本的
然后你需要检查一下,或者用
1 | $ git checkout <revision> -- fileA |
或重定向"Git Show"输出
1 | $ git show <revision>:fileA > fileA |
别忘了添加文件到git(如果需要)!
在删除filea之前,在commit中创建一个标记或分支,签出它,将filea复制到其他地方,然后再次签出
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 | @titan:~$ cd /tmp/ @titan:/tmp$ mkdir x @titan:/tmp$ git init Initialized empty Git repository in /tmp/.git/ @titan:/tmp$ echo a > a @titan:/tmp$ git add a @titan:/tmp$ git ci -m a Created initial commit c835beb: a 1 files changed, 1 insertions(+), 0 deletions(-) create mode 100644 a @titan:/tmp$ git rm a rm 'a' @titan:/tmp$ git ci -m b Created commit de97fae: b 1 files changed, 0 insertions(+), 1 deletions(-) delete mode 100644 a @titan:/tmp$ git whatchanged commit de97fae7a72375ffa192643836ec8273ff6f762b Date: Wed Mar 11 17:35:57 2009 +0100 b :100644 000000 7898192... 0000000... D a commit c835beb7c0401ec27d00621dcdafd366d2cfdcbe Date: Wed Mar 11 17:35:51 2009 +0100 a :000000 100644 0000000... 7898192... A a @titan:/tmp$ git show 7898192 a @titan:/tmp$ git show 7898192 > a @titan:/tmp$ |