git reset soft mixed hard keep区别

git reset 是 用于撤销之前的提交或修改仓库的状态。在使用 git reset 命令时,可以指定不同的模式来达到不同的效果。这些模式包括 --soft、--mixed、--hard 和 --keep。

1 git reset --soft xx :

该模式会将 HEAD 指向目标提交,但会保留目标提交之后的修改。此时,目标提交之后的修改会变成未暂存的修改,可以使用 git status 命令查看并选择性地提交修改。

大致就是 你操作了,

1.1 修改代码

1.2 git add ,

1.3 git commit ,

1.4 git push

然后执行 git reset --soft xx 相当于你回退到了 1.2 git add 这一步。 其他的没有改变,

2 git reset --mixed(默认模式)xx:

该模式在执行 git reset 命令时不带任何参数时,默认使用的就是该模式。它会将 HEAD 指向目标提交,并清除目标提交之后的修改。此时,目标提交之后的修改会变成未提交的修改,可以使用 git status 命令查看并选择性地提交修改。

大致就是你操作了

1.1 修改代码

1.2 git add ,

1.3 git commit ,

1.4 git push

然后执行 git reset --mixed xx 相当于你回退到了 1.1 修改代码 这一步。 其他的没有改变,

就是你修改的代码还在,下面的几个步骤回退了

3 git reset --hard xx:

该模式会将 HEAD 指向目标提交,并彻底清除目标提交之后的修改,即撤销所有未提交的修改。此时,目标提交之后的修改会被永久丢弃,请谨慎使用。

大致就是你操作了

1.1 修改代码

1.2 git add ,

1.3 git commit ,

1.4 git push

然后执行 git reset --hard xx 相当于你回退到了修改代码之前,就是修改的代码都没了,简单粗暴,使用的时候注意是否要备份下自己修改的内容

4 git reset --keep xx:

该模式类似于 git reset --mixed,它会将 HEAD 指向目标提交,并尝试保留目标提交之后的修改。但与 git reset --mixed 不同的是,如果目标提交之后的修改与当前状态存在冲突,该模式会终止操作,以避免可能造成的代码丢失

这个自己用的可少。没啥好说的就是类似mixed ,有冲突的时候该操作会终端。

相关推荐
Lcr3s4 小时前
Git基础之(0):如何在Ubuntu(Linux)上安装git
git
玄芯散人1 天前
【筑基·058】Git协作工作流:冲突解决和PR流程
git·版本控制·团队协作
寺中人1 天前
Git 版本控制完全入门指南:从安装到实战,提交 + 分支 + 协作 + 冲突解决全拆解
git·开发工具·版本控制·团队协作·代码管理
荔枝梅梅1 天前
新手程序员 SSH 第一课:从 Git 仓库连接失败理解 SSH 协议与密钥配置
git
玄芯散人1 天前
【筑基·057】Git代码时光机:版本控制入门到分支管理
git·版本控制·嵌入式开发
szephyr1 天前
Git 分支管理实战:feature/release/hotfix 怎么用才不乱
git·分支管理·团队协作·工作流·hotfix
一木 之林1 天前
手搓家庭服务器:二手装机、Docker部署、端口映射与frp内网穿透
服务器·人工智能·git·编辑器
烛之武1 天前
Git教程笔记
git·gitee
Sharewinfo_BJ1 天前
PBIP项目结构与文件解析
git·powerbi·智信bi·上北智信
Hvitur2 天前
Linux安装Git【离线安装】
git