撤销 git add 和 git commit 操作
1. 撤销 git add#
如果是撤销所有的已经add的文件:
git reset HEAD -- .
如果是撤销某个文件或文件夹:
git reset HEAD -- filename
2. 撤销 git commit#
git reset --soft HEAD^
HEAD^的意思是上一个版本,也可以写成HEAD~1
如果你进行了2次commit,想都撤回,可以使用HEAD~2
其他参数解析:
-
--soft
不删除工作空间改动代码,撤销commit,不撤销git add . -
--mixed
不删除工作空间改动代码,撤销commit,并且撤销git add .
这个为默认参数, git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的。 -
--hard
删除工作空间改动代码,撤销commit,并且撤销git add .
补充:如果该仓库到目前为止只有commit过一次代码,则会报错:
$ git reset HEAD^
fatal: ambiguous argument 'HEAD^': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南