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 天前
阿权的开发经验小集
git·ios·xcode
nightunderblackcat2 天前
新手向:Git下载全攻略
git
若无_2 天前
了解 .husky:前端项目中的 Git Hooks 工具
前端·git
想当花匠的小码农2 天前
Git 仓库“减肥”指南:从检测、清理到同步的全流程实践
git
R_.L2 天前
Git : 基本操作
git
python_1363 天前
git常见冲突场景及解决办法
git
洛小豆3 天前
Git 打标签完全指南:从本地创建到远端推送
前端·git·github
王道长服务器 | 亚马逊云3 天前
一个迁移案例:从传统 IDC 到 AWS 的真实对比
java·spring boot·git·云计算·github·dubbo·aws
嘟嘟可在哪里。3 天前
IntelliJ IDEA git凭据帮助程序
java·git·intellij-idea