git 恢复被删除的文件

刚接触 git 的时候,当碰到之前删除某个文件(比如图片)后面开发又需要恢复的时候,会采取非常笨的方法。从某一个文件存在的 commit 切换出一个新的分支,再将需要的某个文件拷贝出来。像是图片类的文件有时候会直接叫 UI 设计师再发一份。这种需要恢复文件情况不多时(好像确实也不是太多,目前本人遇到这种情况还是极少的),其实这种操作还好。但情况多的时候,还是挺浪费时间的。

git 其实本身就可以恢复被删除的文件。几个命令就可以了。

大多数我们是不知道在何时删除了某个文件,通过下面这个命令我们可以查看在哪个 commit 中删除了哪些文件。

git log --diff-filter=D --summary

执行这个命令后效果如下:

1

比如我想恢复 ic_selected.png 这个文件,我们可以看到删除该文件对应的 commit id :f541888b0e7255cc6aa22a277f3dd9fe5502e5e2

接下来我们执行下面这个命令

git checkout $commit~1 filename

这个命令会检出该 commit 的上一个提交中的文件,因为我们是在该 commit 中删除的文件,所以需要在上一个 commit 才能恢复出文件。

执行该命令后的效果

2

可以看到,执行完我们已经恢复了我们需要的文件。

  • 3
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值