如何撤回刚提交的 commit


如何撤回刚提交的 commit

如果刚刚执行了 git commit 但想撤销这个提交,有几种方法可以实现,具体取决于你想达到的效果:

1. 撤销 commit 但保留更改(修改回到暂存区)

bash 复制代码
git reset --soft HEAD~1
  • 这会撤销最后一次提交
  • 提交的更改会保留在暂存区(就像你刚刚执行了 git add 一样)
  • 你可以修改文件后重新提交

2. 撤销 commit 但保留更改(修改回到工作区)

bash 复制代码
git reset HEAD~1

bash 复制代码
git reset --mixed HEAD~1
  • 撤销最后一次提交
  • 提交的更改会保留在工作区(就像你修改了文件但还没 git add
  • 这是默认的 reset 模式

3. 完全撤销 commit 和更改

bash 复制代码
git reset --hard HEAD~1
  • 完全丢弃最后一次提交和所有更改
  • 慎用:这会永久删除工作目录中的更改

4. 创建反向 commit 来撤销更改(适用于已推送的提交)

bash 复制代码
git revert HEAD
  • 这会创建一个新的 commit 来撤销前一个 commit 的更改
  • 原始提交历史保持不变
  • 适合已经推送到远程仓库的情况

注意事项

  • 如果已经将提交推送到远程仓库,建议使用 git revert 而不是 git reset
  • HEAD~1 表示前一个提交,HEAD~2 表示前两个提交,以此类推
  • 使用 git reset --hard 前请确保你不需要保留那些更改

查看提交历史

操作前后可以使用 git log --oneline 查看提交历史的变化。

相关推荐
C++ 老炮儿的技术栈12 小时前
在 Scintilla 中为 Squirrel 语言设置语法解析器的方法
linux·运维·c++·git·ubuntu·github·visual studio
余很多之很多16 小时前
命令行和neovim的git操作软件-lazygit
git
猫头虎16 小时前
GitHub下载教程:2025年最新详解从GitHub上传、下载文件、子目录与完整项目【图文教程】
git·svn·gitee·开源·github·gitea·gitcode
i建模1 天前
将远程 main 分支同步到 develop 分支的完整指南
git
即使再小的船也能远航1 天前
【Git】实用Git操作指南:从入门到高效协作
git
<但凡.2 天前
Git 完全手册:从入门到团队协作实战(4)
git·bash
SugarPPig2 天前
Git 创建一个完全没有提交历史的 master 分支
git
lb29173 天前
git的使用,推送仓库github
git·github
躲在云朵里`3 天前
Git的使用
大数据·git·elasticsearch
悟能不能悟3 天前
在 IntelliJ IDEA 中打开这个用于设置 Git 用户名(Name)和邮箱(Email)的特定弹窗
java·git·intellij-idea