介绍:
有a.txt b.txt两个文件,其中我们修改了a.txt 并删除 b.txt,已commit
要求:
回复被删除的b.txt 并且不改动 a.txt
方法:
a111@DESKTOP-A8B7AQ5 MINGW64 ~/getback (master)
$ git log --diff-filter=D --summary
commit 87f6404f81a0a4d7d83b551efcd6fc5441c8e9f5 (HEAD -> master)
Author: hetangx <505888379@qq.com>
Date: Sun May 19 23:22:22 2019 +0800
change a and delete b
delete mode 100644 b.txt
a111@DESKTOP-A8B7AQ5 MINGW64 ~/getback (master)
$ git checkout 87f6404f81a0a4d7d83b551efcd6fc5441c8e9f5~1 b.txt
Updated 1 path from ad493f3
其中,“change a and delete b”是commit时添加的massage
可以看到在commit id: 87f6404f81a0a4d7d83b551efcd6fc5441c8e9f5 的这次commit中,我们删除掉了b.txt
于是我们执行
$ git checkout <commit_id>~1 b.txt //无尖括号,不要丢了末尾的"~1"
ls一下就可以看到恢复的b.txt了
-----------------------分割线------------------------
本人刚开始学git,这个是参考csdn里其他文章写的,如果在生产环境使用并造成损失,请不要怪罪于我。