摘要
昨天写代码的时候,误删了一个文件。今天发现的时候,commit 已经 push 到版本库了。本想用 git reset 回退版本,找回文件后重新提交。但是想起 Git 是一个版本控制系统哎,直接从版本库里 checkout 出某个文件的历史版本不就好了?
想法挺好,于是GG搜了下方法是想法是可行的,先来看看
线路用git log来查询下历史提交
[lookback@DT-VM-Node231 ~/kernel-ml-aufs]$ git log #
commit e1b54c63e6be60319675d42c802df2199181810c
Author: Ben Nied
Date: Fri Sep 30 10:18:26 2016 -0400
bump kernel to 4.7.6
commit 2941352b5743e80f9aba161edde8072db7ee119e
Author: Ben Nied
Date: Mon Sep 26 08:33:09 2016 -0400
bump kernel to 4.7.5
............
现在来回退版本
[lookback@DT-VM-Node231 ~/kernel-ml-aufs]$ awk '$2~/LKAver/{print $NF;exit}' specs-el7/kernel-ml-aufs-4.7.spec
4.7.6
[lookback@DT-VM-Node231 ~/kernel-ml-aufs]$ git checkout 2941352b5743e80f9aba161edde8072db7ee119e
之前的 HEAD 位置是 e1b54c6... bump kernel to 4.7.6
HEAD 目前位于 2941352... bump kernel to 4.7.5
[lookback@DT-VM-Node231 ~/kernel-ml-aufs]$ awk '$2~/LKAver/{print $NF;exit}' specs-el7/kernel-ml-aufs-4.7.spec
4.7.5
[lookback@DT-VM-Node231 ~/kernel-ml-aufs]$
可以看出使用 git checkout SHA1号就可以可以实现了