git提交到HEAD detached导致代码丢失

背景

今天线上出现bug, 在切换到旧版本的时候,由于误操作导致本地代码丢失,找回巨费时,特记录如下;

bug产生原因

首先在master分支上开发,线上出现bug且回到旧版本的tag,这时master分支上有一部分代码修改但未提交。

当前在master上:执行git status 有未提交的代码

git status

前在master上:执行git tag查看标签信息

git tag

这时未提交代码,执行了git checkout v1.0

git co v1.0

当前分支是detached,此时提交git add ./ git commit , 然后又执行了git checkout master,此时detached分支不见了,master上未提交的代码也没有了.....

代码找回

执行: git reflog可以看到提交记录

git reflog

git co 247e11b

此时,依次执行
git checkout 247e11b
git checkout -b diff
git checkout master
git merge diff

代码成功找回

参考

stack overflow

福利

面试小集为了回馈粉丝,助力大家顺利获取offer,为大家准备了两本《剑指offer》。关注公众【面试小集】,回复【抽奖】即可参与。

关注面试小集,获取面试干货

推荐阅读更多精彩内容

  • 学习资料pro gitgit - 简明指南Github官方帮助文档Git Community Book 中文版参考...
    合肥懒皮阅读 11,138评论 1 18
  • Git是目前最流行的版本管理系统,也是最先进的分布式版本控制系统(distributed version cont...
    pro648阅读 3,147评论 1 17
  • 本系列为《Git权威指南》的读书笔记,分为两个部分:Part 1 涵盖了书中第 1~3 篇共 20 章的内容,Pa...
    yestyle阅读 8,274评论 0 51
  • 今天第一天开始上班,没有任务,于是开始学习Git这一程序猿必须掌握之技能,希望今天的积累过后,对与Git或者...
    CoderTung阅读 6,978评论 2 95
  • 在洛阳待三年了,我也大三了……要离开洛阳去上海实习了,以前的我,肯定会因为去新城市而兴奋、迫不及待,而现...
    任性不妄为阅读 67评论 1 0