git reflog恢复git reset删除数据
我经常用git reset来恢复自己的工作区,但是偶尔也会失误把错误的分支的commit记录给删除掉了。今天工作中也有遇到一次,本来要删除测试分支的commit记录,但是在操作时没有注意所在的分支,就把工作分支的内容误删除掉了。那么我们如何恢复这些commit记录哪?
当你 (在一个仓库下) 工作时,Git 会在你每次修改了 HEAD 时悄悄地将改动记录下来。当你提交或修改分支时,reflog 就会更新。因此我们就可以用reflog的记录来恢复我们的工作区。
查看reflog记录
git reflog
你会看到如下的内容:
229e8d31 HEAD@{1}: pull origin xx: Fast-forward fd54ce35 HEAD@{2}: checkout: moving from xxx to xxxx 66010f88 HEAD@{3}: merge xxxxx8: Merge made by the 'recursive' strategy. 085b2dba HEAD@{4}: reset: moving to HEAD~1 0f0bfb7d HEAD@{5}: checkout: moving from xxxx to xxxxx 73e400ba HEAD@{6}: commit: xxxxxx 5e9d0305 HEAD@{7}: reset: moving to HEAD~1 2ef40139 HEAD@{8}: reset: moving to 2ef40139 5e9d0305 HEAD@{9}: reset: moving to HEAD~1 2ef40139 HEAD@{10}: checkout: moving from sit to xxx 0f0bfb7d HEAD@{11}: merge xxx: Merge made by the 'recursive' strategy.
恢复工作区
我们可以根据commit的SHA来用git reset恢复。
git reset --hard fd54ce35
这时我们被我们误操作的记录就已经被恢复了,可以用git log来查看git提交记录。
近期评论