git 软重置的使用场景git reset --soft HEAD~1

首先给出命令

git reset --soft HEAD~1

这个命令的作用是 撤销最后一次提交(HEAD~1表示当前提交的前一个提交)

  • --soft 参数:保留修改内容在暂存区中,而不是丢弃它们

具体效果:

  • 撤销提交:取消了提交 30b24cd7cc013a3cacc5d34836306f8d85ec38e1
  • 保留修改:该提交中的所有文件修改都保留在暂存区(staged状态)
  • 回到上一版本:HEAD现在指向 e635419baa28e53162dbde486e74cf8c8977ffb1

这样您就可以对暂存区中的修改进行任何需要的调整,然后重新提交了。

怎么理解这个命令,他的实际场景是什么?

复制代码
root@vm-123:~/001/foundation/multimedia# git log
commit 30b24cd7cc013a3cacc5d34836306f8d85ec38e1 (HEAD -> OhOS_5.0.2_Release_Zhanhong)
Author: lijilei <lijilei@kaihong.com>
Date:   Thu Dec 4 08:45:06 2025 +0000

    <hotfix><30970><解决 galaxy_net_tool的TryPingGet命令因为输入的字符长度过长导致工具崩溃;><source:int; >
    
    Change-Id: Ib4101e034a018fa8173936c8bdeb67a1ffdc124b

commit e635419baa28e53162dbde486e74cf8c8977ffb1 (m/KaihongOS_5.0.1_Release_Zhanhong, kaihong/OhOS_5.0.2_Release_Zhanhong, KaihongOS_5.0.1_Release_Zhanhong)
Author: jenkins <scm@kaihong.com>
Date:   Wed Dec 3 20:07:54 2025 +0800

    <SCM><none><5.0.3推送行业PDU 多媒体相关仓库代码><source:int;none>

commit 656d3c0313cd8e0ec4f62c40ad8bedcd724d252d
Author: jenkins <scm@kaihong.com>
Date:   Wed Dec 3 17:00:10 2025 +0800

    <SCM><none><5.0.3推送行业PDU 多媒体相关仓库代码><source:int;none>

commit 794790a562c0e6d076f120450105590d5b97b622
Author: miaojianan <miaojianan@kaihong.com>
Date:   Wed Dec 3 16:46:05 2025 +0800

    <SCM><none><5.0.3推送行业PDU 多媒体相关仓库代码><source:int;none>

HEAD标识当前节点,本次log显示我本地有一笔提交,因为这个项目是通过gerrit管理的,提交的时候使用的命令是

现在我发现我的这笔提交出错了,需要回退,但是我又想保留提交的内容,因为我只是部分内容需要修改

这时候就执行 git reset --soft HEAD~1

执行完了发生了什么?

查看下发现现在的状态回到了git add 的状态,后面接着执行git commit 和 git push就可以再次提交到远端分支

这种软重置的方法可以修改commit信息,可以回退误提交的文件

当本地提交被gerrit审核合入后,git pull

相关推荐
Winlifes2 天前
我给 Codex 做了一个 Git 面板:分支树、提交历史和工作区操作
git
郑州光合科技余经理3 天前
同城外卖小程序开发:下单成功后,后台导出能不能对上用户端状态
开发语言·前端·git·后端·uni-app·php·ai编程
我命由我123453 天前
Git 推送报错:error: src refspec main does not match any
运维·git·gitee·github·运维开发·学习方法·版本控制
Lcr3s4 天前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人4 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人5 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅5 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人5 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr5 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林5 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器