管理主页分类

拖动分类调整顺序,并选择是否在主页显示。设置仅保存在当前浏览器。

  • 微服务课件 31
  • Java 基础 28
  • Java Web 开发 25
  • 多来买 18
  • LeetCode 题解 8
  • 开发工具 8
  • 网络工具 2
  • 黑马头条 2
  • Java 记忆恢复 1

Git 回退提交流程说明

1125 字
6 分钟
Git 回退提交流程说明

Git 回退提交流程说明#

本文档适用于:已经把代码提交并推送到远程仓库后,发现最新提交不想要,需要回退到之前某个稳定提交的情况。


一、先确认当前分支#

进入项目目录后,先确认当前所在分支:

Terminal window
git branch

如果需要回退的是 main 分支,先切换到 main

Terminal window
git checkout main

然后同步远程最新状态:

Terminal window
git pull origin main

二、查看提交记录#

如果不知道要回退到哪个提交号,可以查看最近的提交记录:

Terminal window
git log --oneline -5

示例输出:

Terminal window
c3228d9 优化自动播放开关稳定性
aedacb5 优化底栏按钮隐藏稳定性
xxxxxxx 更早的提交

其中:

  • 第一行通常是当前最新提交。
  • 第二行通常是上一个提交。
  • 如果最新提交不想要,可以回退到第二行的提交号。

如果想看更完整的提交图,可以使用:

Terminal window
git log --oneline --graph --decorate --all

如果想按提交信息搜索,例如搜索“底栏”:

Terminal window
git log --oneline --all --grep="底栏"

三、回退前建议先备份#

为了防止回退后又想恢复当前版本,建议先创建一个备份分支:

Terminal window
git branch backup-before-rollback

这一步不会改变当前代码,只是把当前状态保存成一个本地备份分支。

如果之后需要恢复,可以切回该备份分支查看:

Terminal window
git checkout backup-before-rollback

四、方式一:彻底回退到指定提交#

如果你确定最新提交不要了,希望远程仓库也回到之前的状态,可以使用 reset --hard

假设要回退到:

Terminal window
aedacb5

执行:

Terminal window
git reset --hard aedacb5

然后强制推送到远程:

Terminal window
git push origin main --force-with-lease

完整命令如下:

Terminal window
git checkout main
git pull origin main
git branch backup-before-rollback
git reset --hard aedacb5
git push origin main --force-with-lease

说明:

  • git reset --hard aedacb5:把本地代码强制回到 aedacb5 这个提交。
  • git push origin main --force-with-lease:把远程 main 分支也同步回退。
  • --force-with-lease--force 更安全,可以避免误覆盖别人刚推送的内容。

五、方式二:直接回退到上一个提交#

如果你只是想撤销当前最新提交,不想手动找提交号,可以使用:

Terminal window
git reset --hard HEAD~1

然后推送到远程:

Terminal window
git push origin main --force-with-lease

完整命令:

Terminal window
git checkout main
git pull origin main
git branch backup-before-rollback
git reset --hard HEAD~1
git push origin main --force-with-lease

说明:

  • HEAD 表示当前最新提交。
  • HEAD~1 表示当前提交的上一个提交。
  • 如果只想撤掉最新一次提交,这个方式最省事。

六、方式三:不改历史记录,使用 revert#

如果这个分支有多人协作,不建议强制回退远程历史,可以使用 revert

假设要撤销的提交是:

Terminal window
c3228d9

执行:

Terminal window
git revert c3228d9
git push origin main

说明:

  • git revert 不会删除历史提交。
  • 它会生成一个新的提交,用来抵消之前那个提交的改动。
  • 适合多人协作项目。

七、回退后检查结果#

回退完成后,查看最近提交:

Terminal window
git log --oneline -5

查看工作区状态:

Terminal window
git status

正常情况下会显示类似:

Terminal window
On branch main
Your branch is up to date with 'origin/main'.
nothing to commit, working tree clean

也可以查看远程仓库页面,确认最新提交已经变成目标提交。


八、常用场景选择#

场景推荐命令
只想撤掉最新一次提交git reset --hard HEAD~1
想回退到某个指定提交git reset --hard 提交号
已经推送远程,并且想远程也回退git push origin main --force-with-lease
多人协作,不想改历史git revert 提交号
不知道提交号git log --oneline -5
想按提交信息搜索git log --oneline --all --grep="关键词"

九、你这次的推荐操作#

根据当前情况:最新提交是 c3228d9,你想回到上一条稳定提交 aedacb5

最推荐流程:

Terminal window
git checkout main
git pull origin main
git log --oneline -5
git branch backup-before-rollback
git reset --hard HEAD~1
git push origin main --force-with-lease

如果你已经知道目标提交号,也可以写成:

Terminal window
git checkout main
git pull origin main
git branch backup-before-rollback
git reset --hard aedacb5
git push origin main --force-with-lease

十、注意事项#

  1. git reset --hard 会丢弃当前工作区未保存的修改。
  2. 执行前建议先运行:
Terminal window
git status
  1. 如果有未提交但还想保留的内容,可以先暂存:
Terminal window
git stash
  1. 如果是多人协作项目,优先考虑 git revert,不要随便强推。
  2. 如果确定这个分支只有自己使用,reset --hard + --force-with-lease 是最快的回退方式。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

Git 回退提交流程说明
https://firefly-mu-weld.vercel.app/posts/git-rollback-process/
作者
Daisy
发布于
2026-07-07
许可协议
CC BY-NC-SA 4.0
Profile Image of the Author
Daisy
Hello, I'm Daisy.
公告
欢迎来到我的博客!这是一则示例公告。
分类
标签

文章目录