当前位置: 首页 > news >正文

git回滚操作

Git 回滚操作有多种方式,常见的回滚方式分为三类,适用于不同的场景:


🚧 一、修改尚未提交的内容(工作区/暂存区)

1.1 撤销工作区的修改(未 add)

git checkout – file

👉 把文件还原为最近一次提交的状态。

1.2 撤销暂存区的修改(已 add)

git reset HEAD file

👉 把文件从暂存区移回工作区。


🔙 二、撤销已经提交的内容

2.1 撤销最近的一次提交(但保留修改)

git reset – soft HEAD~1

👉 回退提交,但不清除代码,修改内容仍在暂存区。

2.2 撤销最近的一次提交(保留修改但移出暂存区)

git reset – mixed HEAD~1 # 默认方式

👉 代码仍保留在工作区,未暂存。

2.3 撤销最近的一次提交(彻底丢弃)

git reset – hard HEAD~1

⚠️ 危险操作! 修改和提交都会被删除,无法恢复(除非 reflog)。


🧭 三、回滚到某个历史版本

3.1 保留历史记录的回滚(生成一个新 commit)

git revert commit_hash

👉 不会删除历史,而是创建一个“反操作”的提交(适合公开分支)。

3.2 丢弃某次提交及之后的记录

git reset – hard commit_hash

👉 会让当前分支指针回到指定提交,慎用!


🔄 四、查看历史提交记录

git log – oneline

👉 快速查看 commit hash 和信息,方便执行 revert 或 reset。


🧯 五、误操作恢复(保险)

5.1 查看历史操作记录

git reflog

👉 查看 HEAD 变动记录,比如误用了 reset --hard 可以找回之前的 commit。

5.2 恢复误删的提交

git reset --hard <reflog中出现的commit id>


✍️ 小总结(选择策略)

目标 命令 是否保留记录 是否保留修改

撤销本地未提交 checkout/reset ❌ ✅
回退最近提交 reset ❌(危险) 可选
回退某一提交(保留历史) revert ✅ ✅
误删找回 reflog + reset ✅ ✅

相关文章:

  • 失业学习-前端工程化-webpack基础
  • 【图像处理入门】9. 基础项目实战:从去噪到图像加密
  • App Trace 快速安装解析(开发者视角)
  • 单片机 - STM32读取GPIO某一位时为什么不能直接与1判断为高电平?
  • 可展开收起的搜索项组件el-table
  • 开发工期紧急:用户体验优化5大实施策略
  • 暴雨服务器成功中标洪湖市政府框架采购项目
  • 手写一个Spring:一、IOC容器
  • 电阻、电容、电感
  • 漫画Android:从网络加载一个50MB的图片,要注意什么?
  • 探秘KingbaseES在线体验平台:技术盛宴还是虚有其表?
  • EasyExcel 4.X 读写数据
  • 『大模型笔记』第3篇:多长的 Prompt 会阻塞其他请求?优化策略解析
  • AI测试开发工程师如何用大模型调用工具:从入门到实践
  • Linux --Ext系列文件系统
  • 【PWN】04.Linux-User Mode-栈溢出-x86-中级ROP
  • 工业 AI Agent:智能化转型的核心驱动力
  • openGrok大型源码(AOSP/openHarmonyOS等)开发提升检索效率必备神器
  • Day03_数据结构
  • 微軟將開始使用 Copilot Vision 監控 Windows 10 和 11 用戶的螢幕
  • 付费小说网站建设/百度ai助手入口
  • 做美女写真网站犯法吗/如何快速优化网站排名
  • wordpress 登录页加密/沧州网站推广优化
  • 推广策略和促销策略的区别/拼多多seo 优化软件
  • 淘客必须做网站/怎样进行网络推广效果更好
  • 附近哪里有建筑模板卖/2020站群seo系统