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 查看提交历史。

相关推荐
霸道流氓气质11 小时前
CodeBuddy中使用 MCP 工具将 XMind 思维导图转换为 Markdown —— 实操流程汇总
git·myeclipse·xmind
OsDepK16 小时前
mimo code安装教程
git·电脑·ai编程
NexTunnel19 小时前
公司老项目还在 SVN,远程维护怎么做更稳?
git·svn·gitlab·远程工作·nextunnel
满天星83035771 天前
【Git】原理及使用(七) (多人协作 [下])
git
郡杰2 天前
Git基础与开发平台搭建
git·后端
钟智强2 天前
我警告了 329 天
git·php·wordpress·webshell
乐观的冷风2 天前
我们需要将文件添加到暂存区才能提交,而移除文件后是无法添加到暂存区的,那么怎么移除一个文件让GIT不再将其纳入版本控制呢?上图中GIT已经给出了说明:
git
tjl521314_212 天前
Git SSH Host Key Verification Failed 问题排查与解决
运维·git·ssh
嘶哈哈哈2 天前
[特殊字符] Git 协作指南
git
say_fall2 天前
【Git 精品详解】企业规范:企业级开发模型、Git Flow、发版流程规范、Code Owner 制度、事故应急回滚
大数据·linux·服务器·git·学习·elasticsearch