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

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还在
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容