从git存储库中取消删除文件

时间:2016-03-01 20:38:26

标签: git

我想恢复我以前的提交(提交4d462937b006da1fbc710bc33bf3bab76de1ede2)和我的所有文件(其中一些已被删除)

(venv) [ndale@my_arch project]$ git log

commit d0b07921e818c5c5abdb92f0e563f4d186370b6f
Author: Nikos Dalezios <ndalezios@gmail.com>
Date:   Tue Mar 1 21:03:11 2016 +0200

    test

commit 4d462937b006da1fbc710bc33bf3bab76de1ede2
Author: Nikos Dalezios <ndalezios@gmail.com>
Date:   Sun Feb 28 20:07:01 2016 +0200

    ok



(venv) [ndale@my_arch project]$ git reflog
d0b0792 HEAD@{0}: pull origin master: Fast-forward
4d46293 HEAD@{1}: reset: moving to 4d46293
e0e0368 HEAD@{2}: reset: moving to HEAD^
4d46293 HEAD@{3}: reset: moving to 4d46293
d0b0792 HEAD@{4}: checkout: moving from 4d462937b006da1fbc710bc33bf3bab76de1ede2 to d0b0792
4d46293 HEAD@{5}: checkout: moving from master to 4d46293
4d46293 HEAD@{6}: reset: moving to HEAD^
d0b0792 HEAD@{7}: commit: test
4d46293 HEAD@{8}: commit: ok

我真的搞砸了,我丢失了几个python代码文件(几百行)。 HEAD @ {8}是我需要回去的地方.....

由于

我不知道这是否有帮助,但我的命令历史是这个

git rm -r *
git reset --hard HEAD
git reset HEAD
git commit -a
git reset --hard HEAD^
git checkout 4d46293
git checkout d0b0792
git reset --hard 4d46293
git reset --hard HEAD^ #4d46293

2 个答案:

答案 0 :(得分:1)

如果您尚未将提交推送到远程存储库(Github,Bitbucket等),那么您可以使用

git reset --hard 4d462937b006da1fbc710bc33bf3bab76de1ede2

这实际上删除了与您的提交相关的任何记录。

另一方面,如果您已将提交推送到远程存储库,那么您将要执行

git revert 4d462937b006da1fbc710bc33bf3bab76de1ede2

撤消您的更改并在提交历史记录中记录此撤消。

答案 1 :(得分:0)

git reset --hard 4d462937b006da1fbc710bc33bf3bab76de1ede2