git還有很多功能,不過我們最想要的可能是git能保證我們文件的安全,不要丟失我們的數據,這時候可以使用REFLOG功能。如果想要了解的更深入可以查看refs-and-the-reflog,這里我們就看看怎么用的好了。看看一下場景:
找回丟失的commit
-
使用log命令查看當前commit歷史
log - reset修改
git reset --hard HEAD^
這時候我們的commit已經沒啦
- 使用reflog
git reflog
5937df4 HEAD@{0}: reset: moving to HEAD^
c2974a2 HEAD@{1}: commit: add reflog.txt
reflog
我們可以看到,reflog保存了另一份日志,做了啥操作git都記錄了
reflog說明
- 恢復
git reset --hard HEAD@{1}
丟失的commit找回來了。注意reflog只保存在你自己的機器上。我們恢復的可是HEAD@{1}
啊
找回丟失的分支
我們切換回master分支,并刪除一個分支,假定名字叫reflog,我們要怎么找回它呢。實際上只要找到原來分支的tip commit就可以了。來看看吧。
- 不小心刪除一個分支
git branch -D reflog
- 找到想要的commit
也可以使用git log --walk-reflogs
去查看reflog
reflog - 重建分支
git branch reflogs HEAD@{1}
-
檢查分支是否重建好了
branch -
檢查分支log
可以看到這個branch和原來的一模一樣啊
原來的commit還在