Git的回滚方法

回滚到之前的提交有几种方法,具体取决于你的需求:

1. 临时查看(不修改历史)

bash 复制代码
# 临时切换到某个提交查看(只读模式)
git checkout <commit-hash>

# 查看完毕后回到当前分支
git checkout myfoc

2. 撤销工作区的修改

bash 复制代码
# 撤销所有未提交的修改
git restore .

# 或者使用旧命令
git checkout -- .

3. 软回滚(保留修改内容)

bash 复制代码
# 回滚到指定提交,但保留所有修改在暂存区
git reset --soft <commit-hash>

4. 混合回滚(默认,保留修改但不暂存)

bash 复制代码
# 回滚到指定提交,修改保留在工作区
git reset --mixed <commit-hash>
# 或者简写
git reset <commit-hash>

5. 硬回滚(彻底删除修改)

bash 复制代码
# 完全回滚到指定提交,丢弃所有之后的修改
git reset --hard <commit-hash>

6. 回滚到特定提交的示例

bash 复制代码
# 先查看提交历史找到目标提交
git log --oneline

# 假设要回滚到提交 22490b9
git reset --hard 22490b9

# 或者回滚到前3个提交
git reset --hard HEAD~3

7. 使用 revert(推荐用于已推送的提交)

bash 复制代码
# 创建一个新的提交来撤销之前的提交
git revert <commit-hash>

🚨 重要提醒

硬回滚前先备份

bash 复制代码
# 先创建备份分支
git branch backup-branch

# 或者保存当前状态
git stash

如果已经推送到远程

bash 复制代码
# 硬回滚后强制推送(谨慎使用!)
git push --force-with-lease

# 或者使用 revert 更安全
git revert <commit-hash>
git push

📋 推荐工作流程

  1. 先确认当前状态

    bash 复制代码
    git status
    git log --oneline -10
  2. 创建备份

    bash 复制代码
    git branch backup-before-rollback
  3. 执行回滚

    bash 复制代码
    git reset --hard <目标提交hash>

你想回滚到哪个具体的提交?可以先运行 git log --oneline 查看提交历史。

相关推荐
小李不困还能学3 小时前
用git GUI往远程仓库中添加文件/文件夹
git
失途老马4 小时前
Git Patch 生成与应用完整操作手册
git
李白的天不白5 小时前
下载smartadmin框架
git·github
可乐要加冰^-^5 小时前
云雀文档下载
windows·git·github·石墨文档
NaclarbCSDN5 小时前
我写了一个命令行书签管理器,然后抛弃了浏览器书签栏
linux·git·python·github
++==6 小时前
git的安装以及基本命令使用、远程仓库的操作、vscode连接远程仓库进行项目的上传、gitee的使用
linux·git·gitee
kyriewen16 小时前
Git Commit 前自动修复代码风格?配置 Husky + lint-staged,从此 CR 只聊逻辑
前端·git·面试
吹牛不交税1 天前
visualstudio把项目绑定git仓库
git
c238561 天前
git常见错误和ssh验证推送
运维·git·ssh
火山上的企鹅1 天前
Codex实战:APP远程升级服务搭建(四)Node 服务端自动识别 APK 信息
android·服务器·git·github·qgc