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 "回退到目标版本 <目标版本哈希>"
相关推荐
ikkkkkkkl2 小时前
Git基本操作
git
互联网搬砖老肖3 小时前
git 的基本使用
大数据·git·elasticsearch
程序猿chen5 小时前
量子跃迁:Vue组件安全工程的基因重组与生态免疫(完全体终局篇)
前端·vue.js·git·安全·面试·前端框架·跳槽
SunTecTec7 小时前
Idea 配置 Git
git
chxii7 小时前
2.4.5goweb项目上传到csdn的git仓库
git
清风徐来QCQ8 小时前
git和github的使用指南
git·github
serene948 小时前
IntelliJ IDEA 2025.2 和 JetBrains Rider 2025.1 恢复git commit为模态窗口
java·git·intellij-idea
sun0077009 小时前
git 工具
git
G皮T13 小时前
【DevOps】Git 命令实战:一个简单的 Web 开发项目示例
git·github·devops·版本控制
像风一样自由202015 小时前
Git 进阶使用指南
git