Git安全回退历史版本

Git安全回退历史版本

方法 特点
git revert 保留所有中间提交历史,生成显式的反向提交,适合精确撤销特定提交。
直接提交 快速生成一个回退提交,无需处理多个撤销操作,适合简单回退到某个旧版本。

git revert

仅回退一个版本

bash 复制代码
git revert HEAD

回退多个版本

bash 复制代码
git revert D C B  # 先撤销最近的提交 D,再依次撤销 C、B
bash 复制代码
git revert --no-commit B..D  # 撤销提交 B 到 D 之间的所有提交(不含 B)
git commit -m "Revert commits from B to D"

查看是否完成回退操作

base 复制代码
git status

完成:

复制代码
On branch master
nothing to commit, working tree clean

未完成:

复制代码
On branch master
You are currently reverting commit b358355.
  (all conflicts fixed: run "git revert --continue")
  (use "git revert --skip" to skip this patch)
  (use "git revert --abort" to cancel the revert operation)

其余操作

  • git revert --continue
作用:

继续完成当前的 revert 操作。

使用场景:
  • 当 revert 过程中遇到冲突时,Git 会暂停操作并提示你解决冲突。
  • 解决冲突后,使用 git add <文件> 标记冲突文件为已解决。
  • 然后运行 git revert --continue,Git 会生成一个新的反向提交,完成 revert 操作。
示例:
bash 复制代码
# 解决冲突后
git add <冲突文件>
git revert --continue

  • git revert --skip
作用:

跳过当前的 revert 操作(跳过当前提交)。

使用场景:
  • 当 revert 过程中遇到冲突,但你不想解决冲突,而是希望跳过当前提交的撤销操作。
  • 跳过当前提交后,Git 会继续处理后续的 revert 操作(如果有)。
示例:
bash 复制代码
# 跳过当前提交
git revert --skip

  • git revert --abort
作用:

完全放弃当前的 revert 操作,恢复到执行 revert 之前的状态。

使用场景:
  • 当 revert 过程中遇到问题(如冲突无法解决),或者你不想继续 revert 操作时。
  • 运行 git revert --abort 后,所有未完成的 revert 操作都会被取消,工作目录和暂存区会恢复到执行 revert 之前的状态。
示例:
bash 复制代码
# 放弃当前的 revert 操作
git revert --abort

直接提交

checkout方式

bash 复制代码
git checkout <目标版本哈希> -- .
git commit -m "回退到目标版本 <目标版本哈希>"

git read-tree方式

bash 复制代码
git read-tree -u --reset <目标版本哈希>
git commit -m "回退到目标版本 <目标版本哈希>"
相关推荐
星恒随风1 小时前
Linux开发工具详解(二):Git版本控制、GitHub协作与GDB调试实战
linux·笔记·git·学习·github
寺中人19 小时前
Xshell 完全入门指南:从安装到实战,远程连接+文件传输+会话管理全拆解
git·ssh·github·php·远程连接·xshell·运维工具
酬谢神明则必安20 小时前
git学习记录01
linux·git·学习
lingchen190620 小时前
版本控制 Git源代码项目管理
git
虫无涯21 小时前
Coverity 如何结合 GJB8114-2013使用?
git·单元测试·嵌入式测试·coverity·静态扫描
喵本喵叁肆1 天前
Git 深度解读:从对象模型到分支指针,把版本控制的内核讲透
git
阿钱真强道2 天前
课时00 嵌入式技术应用设计实训 | 开发环境搭建与开发板认识
git·hal库·keil·vs code·开发环境搭建·stm32f103·st-link
老李IT笔记3 天前
激活锁状态怎么检测:三个入口,四种返回值,一份排查顺序
git·智能手机·github
Joecien3 天前
【2026实测】百炼 CLI 托管 Agent 教程:bl managed-agent 配置校验、版本回滚与变更预演(附完整命令)
人工智能·git·阿里云·知识图谱·agi
行者-全栈开发3 天前
【码动四季·秋】从 commit 到发版全自动:Conventional Commits + semantic-release 发布流水线实战
git·ci/cd·自动化发布·atomgit·semantic-releas·语义化版本自动化·git 提交规范落地