前言
我们在使用git管理代码时通常要提交和拉取代码,但是某些时候存在误操作的行为。例如代码还没提交就做了checkout、pull动作,导致写了几天的代码没有备份就丢失或者被覆盖了。
解决方法
- 恢复前提 在执行
git checkout master
或者git pull
命令前,执行过git add .
及commit命令git commit -m "xxx"
,git工具才能给你记录你的版本变化(本地的),否则丢失代码可能无可挽救。 - 回滚 (1)查看历史本地git版本:
git reflog
。运行结果如下图所示,现在需要回滚到checkout之前的版本,也就是commit:add new page of xxx
那一个版本,该版本索引是最前面的字符串210ddf5
。 (2)运行回滚命令git reset --hard 210ddf5
,运行结果如下图所示,那么就成功回滚了。
排坑
- 有些博客写的回滚命令是
git reset --hard HEAD@{1}
,其中花括号里面的数字对应回滚版本id。但是本人运行不能回滚,出现错误(error: unknown switch `e’)如下图。
参考文献
git学习教程
通过git命令回滚
通过编译器的功能恢复文件的方法
本文转载自: https://blog.csdn.net/imxiezy/article/details/124506162
版权归原作者 imxiezy 所有, 如有侵权,请联系我们删除。
版权归原作者 imxiezy 所有, 如有侵权,请联系我们删除。