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 "回退到目标版本 <目标版本哈希>"
相关推荐
兔子坨坨31 分钟前
pycharm连接github(详细步骤)
windows·git·学习·pycharm·github
大大小小聪明8 小时前
Git合并多个提交方法详解
git·github
Baoing_14 小时前
Git 项目切换到新的远程仓库地址
git
暴躁哥19 小时前
Git 版本控制系统入门指南
git
diving deep21 小时前
IDEA中git对于指定文件进行版本控制
git
趁你还年轻_1 天前
记录一次git提交失败解决方案
git
关于不上作者榜就原神启动那件事1 天前
git版本控制学习
git·学习
Cchaofan1 天前
Git/GitLab日常使用的命令指南来了!
git·gitlab
可乐加.糖2 天前
项目版本管理和Git分支管理方案
java·git·目标跟踪·gitlab·敏捷流程·源代码管理
wingaso2 天前
[经验总结]删除gitlab仓库分支报错:错误:无法推送一些引用到“http:”
linux·数据仓库·git