git reset (hard soft mixed) 区别

准备环境

如下所示,创建A并加入暂存区
System.out.println(“E”);内容然后commit StringDemo文件
commit之后在StringDemo中新增
System.out.println(“E commit 之后 工作区内容”);

在这里插入图片描述

我们准备回滚到下图的分支,先粘贴该分支版本号
在这里插入图片描述
按如下方式操作
在这里插入图片描述

演示hard

选择hard 粘贴版本号
在这里插入图片描述

我们看到如下结果
首先暂存区内容(A)文件被删除了
然后 E节点的提交记录消失了
E节点提交之后的工作区内容消失了
在这里插入图片描述
然后我们再次点击commit,并没有发现什么可提交的文件
在这里插入图片描述
工作区内容、暂存区内容以及Repository的内容,都会恢复到回退的那个节点的代码,并且之前该版本后面的所有commit都会被删除

演示soft

在这里插入图片描述

reset后发现
暂存区(A)文件并没有被删除
提交记录中E节点记录被删除
StringDemo文件中工作区内容没有变动,以及提交的内容也没有被删除
在这里插入图片描述
但是,我们点击commit查看可提交内容以及StringDemo的变动可以看出
在这里插入图片描述
在这里插入图片描述
工作区和暂存区的内容都不会被修改,不过soft后所带来的差异(就是reset目标版本号)以后,所带来的所有的修改,会被保存到暂存区,也就是相当于git add 后但是没commit前

演示mixed

在这里插入图片描述

reset后可以看到好像除了提交记录没有之后,文件并没有什么变动
在这里插入图片描述

那么我们来查看一下commit
首先对比soft我们发现可提交文件少了A文件
在这里插入图片描述

然后我们再看StringDemo的文件内容
在这里插入图片描述

然后我们把A文件添加到暂存区
在这里插入图片描述
就可以发现可提交文件有了A文件
在这里插入图片描述

总结
只会保留工作区 的修改,暂存区以及mixed带来的差异,会被全部放到工作区中,也就是相当于没有git add之前的状态

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值