Git

Git之不明觉厉10-都留下了痕迹

2016-03-04  本文已影响105人  转角遇见一直熊

git还有很多功能,不过我们最想要的可能是git能保证我们文件的安全,不要丢失我们的数据,这时候可以使用REFLOG功能。如果想要了解的更深入可以查看refs-and-the-reflog,这里我们就看看怎么用的好了。看看一下场景:

找回丢失的commit

  1. 使用log命令查看当前commit历史


    log
  2. reset修改
git reset --hard HEAD^

这时候我们的commit已经没啦

  1. 使用reflog
git reflog
5937df4 HEAD@{0}: reset: moving to HEAD^
c2974a2 HEAD@{1}: commit: add reflog.txt
reflog

我们可以看到,reflog保存了另一份日志,做了啥操作git都记录了


reflog说明
  1. 恢复
git reset --hard HEAD@{1}

丢失的commit找回来了。注意reflog只保存在你自己的机器上。我们恢复的可是HEAD@{1}

找回丢失的分支

我们切换回master分支,并删除一个分支,假定名字叫reflog,我们要怎么找回它呢。实际上只要找到原来分支的tip commit就可以了。来看看吧。

  1. 不小心删除一个分支
    git branch -D reflog
  2. 找到想要的commit
    也可以使用git log --walk-reflogs去查看reflog
    reflog 我们想要的是第二个commit
  3. 重建分支
git branch reflogs HEAD@{1}
  1. 检查分支是否重建好了


    branch
  2. 检查分支log
    可以看到这个branch和原来的一模一样啊


    原来的commit还在
上一篇 下一篇

猜你喜欢

热点阅读