承香墨影
只分享最有用的原创技术干货!
这位开发,丢过代码没有?
今日推荐个小技巧,如何使用 Git 命令,找到被冲掉的代码,关键时刻,可能能救命!
最后祝大家元宵节快乐!
— 承香墨影
作者 | riverli
原文 | 《git提交到HEAD detached导致代码丢失》
授权 承香墨影 转载发布
背景
今天线上出现 Bug, 在切换到旧版本的时候,由于误操作导致本地代码丢失,找回巨费时,特记录如下。
Bug产生原因
首先在 master 分支上开发,线上出现 Bug 且回到旧版本的tag ,这时 master 分支上有一部分代码修改但未提交。
当前在 master 上:执行 git status 有未提交的代码。
当前在 master 上:执行git tag查看标签信息。
这时未提交代码,执行了 git checkout v1.0。
当前分支是 detached,此时提交 git add ./ git commit , 然后又执行了 git checkout master ,此时 detached 分支不见了,master 上未提交的代码也没有了…..
代码找回
执行: git reflog 可以看到提交记录
git co 247e11b
// 此时,依次执行
git checkout 247e11b
git checkout -b diff
git checkout master
git merge diff
代码成功找回
今天在公众号后台回复成长『成长』,将会得到我整理的一些学习资料,也能回复『加群』,一起学习进步。
荐阅读: