网站首页 > 技术教程 正文
关注我的微信公众号:后端技术漫谈
不定期推送关于后端开发、爬虫、算法题、数据结构方面的原创技术文章,以及生活中的逸闻趣事。
原创博客主要内容
- Java知识点复习全手册
- Leetcode算法题解析
- 剑指offer算法题解析
- SpringCloud菜鸟入门实战系列
- SpringBoot菜鸟入门实战系列
- Python爬虫相关技术文章
- 后端开发相关技术文章
前言
Git是一个易学难精的分布式版本控制系统,被我们码农常用于代码的管理。如果你还不了解Git,建议先通过廖雪峰的Git教程进行了解,再来看本文,因为本文以使用技巧为主,不会在基础名词上做过多解释。
廖雪峰的Git教程:
https://www.liaoxuefeng.com/wiki/896043488029600/896067008724000
恢复被强制推送push失踪的代码
在常规的开发流程中,难免有时因为各种原因(例如需要使用git rebase)会需要使用到git push -f,也就是强制推送,该命令会覆盖远程分支。
但如果操作不当,会容易把小伙伴的之前提交的commit给覆盖掉,不要慌,这并不代表你小伙伴的commit已经永远找不回来了,大部分情况下,他们还是可以被找回的。
git reflog 可以查看所有分支的所有操作记录(包括(包括commit和reset的操作),包括已经被删除的commit记录,git log则不能查看已经删除了的commit记录
虽然有reflog这跟救命稻草,但由于Git会定时gc(回收),清理掉reflog,所以被人覆盖后不要等待太久才进行恢复操作,不然可能就真的找不回了。
操作方法
- 备份当前工作区的数据
你可以使用git stash等命令备份下现在正在写的代码
- 在命令行输入git reflog/git log -g
显示所有历史操作,找到你需要的提交(包括已经被删除的commit记录,git log则不能察看已经删除了的commit记录)
2.1 强制回退到当时被删除的commit
git reset --hard <SHA1>
2.2 或者直接
git cherry-pick <SHA1>
直接把当时版本的工作拿回来。不过如果有冲突的话还要处理冲突。
- 强推上远程分支
git push -f origin <branch>
如果引起commit丢失的原因并没有记录在reflog 中,比如运行了rm -Rf .git/logs/, 因为 reflog 数据是保存在 .git/logs/ 目录下的,这样就没有 reflog 了。
可以使用 git fsck 工具,该工具会检查仓库的数据完整性。如果指定 --full 选项,该命令显示所有未被其他对象引用 (指向) 的所有对象:
然后,用相同的方法就可以恢复它,即创建一个指向该 SHA 的分支。
是不是对于强推git push -f不再慌了呢?
关注我
我是一名后端开发工程师。
主要关注后端开发,数据安全,爬虫,物联网,边缘计算等方向,欢迎交流。
各大平台都可以找到我
- 微信公众号:后端技术漫谈
- Github:@qqxx6661
- CSDN:@Rude3Knife
- 知乎:@Zhendong
- 简书:@蛮三刀把刀
- 掘金:@蛮三刀把刀
- 头条:@后端技术漫谈
原创博客主要内容
- Java知识点复习全手册
- Leetcode算法题解析
- 剑指offer算法题解析
- SpringBoot菜鸟入门实战系列
- SpringCloud菜鸟入门实战系列
- 爬虫相关技术文章
- 后端开发相关技术文章
- 逸闻趣事/好书分享/个人兴趣
个人公众号:后端技术漫谈
公众号:后端技术漫谈.jpg
如果文章对你有帮助,不妨收藏,投币,转发,在看起来~
- 上一篇: git如何正确回滚代码 git如何回滚到指定版本
- 下一篇: git如何撤销合并 git撤销合并请求
猜你喜欢
- 2024-10-27 git安装使用 git的安装流程
- 2024-10-27 代码即将上线,突然有个中间提交不能发布!怎么办?
- 2024-10-27 git 将本地还原至某次提交 git还原到指定版本
- 2024-10-27 git reset 和 git rever 实践 git的reset
- 2024-10-27 这有一份 Git 日常使用清单,你需要吗?
- 2024-10-27 Git教学篇2-git日常操作之git clone与git tag
- 2024-10-27 git clone切换分支步骤,代理设置,作者信息设置
- 2024-10-27 Git 高级用法,喜欢就拿去用 git常用
- 2024-10-27 Git 必知必会《续》 git hint
- 2024-10-27 git的使用 git基本用法
你 发表评论:
欢迎- 05-1613步震撼淘宝大促闪光裂纹破墙立体字PS制作教程
- 05-16AI教程 | 绘制扁平的萌萌哒图标
- 05-160基础学平面设计所需了解的基础常识汇总
- 05-16自学平面设计需要多长时间?十六年职业设计总监告诉你
- 05-16平面设计都要学习哪些内容?
- 05-16李涛PS教程 高手之路PS教程 合成教程 —制作一个小星球
- 05-16Illustrator实例教程:制作炫酷的漩涡效果
- 05-16Illustrator实例教程:利用混合工具制作一朵炫酷的花
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)