怎么撤销 git commit 提交的代码
问题
比如:我在项目里面添加了一个新的组件 gitTest.java
,
写完之后,我就提交代码:
1 2 | git add . git commit -m '提交git测试组件' |
git reset 命令
git reset 命令用于回退版本,可以指定退回某一次提交的版本。
git reset 命令语法格式如下:
1 | git reset [--soft | --mixed | --hard] [HEAD] |
-mixed 为默认,可以不用带该参数,用于重置暂存区的文件与上一次的提交(commit)保持一致,工作区文件内容保持不变。
不删除工作空间改动代码,撤销 commit,并且撤销 git add . 操作
git reset --mixed HEAD^ 和 git reset HEAD^ 效果是一样的
–soft 参数用于回退到某个版本
不删除工作空间改动代码,撤销 commit,不撤销 git add .
–hard 参数撤销工作区中所有未提交的修改内容,将暂存区与工作区都回到上一次版本,并删除之前的所有信息提交
删除工作空间改动代码,撤销 commit,撤销 git add .
实例:
1 2 3 4 5 6 7 | $ git reset HEAD^ # 回退所有内容到上一个版本 $ git reset HEAD^ hello.php # 回退 hello.php 文件的版本到上一个版本 $ git reset 052e # 回退到指定版本 $ git reset --soft HEAD~ 3 # 回退上上上一个版本 $ git reset --hard HEAD~ 3 # 回退上上上一个版本 $ git reset --hard bae128 # 回退到某个版本回退点之前的所有信息。 $ git reset --hard origin/master # 将本地的状态回退到和远程的一样 |
注意:谨慎使用 –hard 参数,它会删除回退点之前的所有信息。
HEAD 说明:
• HEAD 表示当前版本
• HEAD^ 上一个版本
• HEAD^^ 上上一个版本
• HEAD^^^ 上上上一个版本
可以使用 ~数字表示
• HEAD~0 表示当前版本
• HEAD~1 上一个版本
• HEAD~2 上上一个版本
• HEAD~3 上上上一个版本
解决
执行完commit后,想撤回commit,怎么办?
通过上面的 git reset 命令学习,可以知道:使用下面的命令
1 2 | # 回退上一个版本,然后需要删掉代码 git reset --hard HEAD~ 1 |
执行完我们发现已经回退到了提交前的状态
可以输入查看日志命令:
1 | git log --oneline - 10 |
拓展
推荐阅读:Git 工具 - 重置揭密
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人