git reset中hard与soft区别

本文介绍了Git的reset命令中--hard和--soft模式的区别。--hard模式会强制回退到指定commit,丢弃所有未提交的改动,而--soft模式则保留这些改动,仅移除最近的commit。当需要撤销错误的commit而不丢失工作进度时,--soft模式更为适用。通过实例展示了如何使用这两种模式进行版本回退。
摘要由CSDN通过智能技术生成

前言

 对于我们日常开发中,我们常用的方法可能是git reset --hard,来强行回退commit所提交的信息,这是不友好的,也许我们希望对误操作提交的commit不进行删除而是重新修改并进行提交,这个时候就需要–soft操作了,下文将介绍hard模式与soft模式的差异~

git reset中的hard与soft

 对于git reset我们在日常主要是使用其两种模式,分别为hard与soft模式,对于git reset --hard的作用是代码强制回溯到某节点,对于当前节点->回溯节点中间已commit的内容就会全部消失,而git reset --soft模式下与hard模式会有所不同,他会保存当前节点->回溯节点之间已保存的内容。
 --hard场景:1.当我们发现提交的某个commit思路不正确,或与业务有很大的出入时,我们此时可以选择使用–hard去回退版本(–hard)。
 --soft场景:1.当我们不小心把还没有添加完毕的功能commit提交上去时,这个时候我们可以使用–soft去回退我们误提交的commit,完成此功能后,在重新提交commit。
使用:

	// 强回最近一次的commit所提交的内容(不保留内容)
	git reset --hard 
	// 强回对应commitID的内容(不保留内容)
	git reset --hard commitID
	
	// 恢复最近一次的commit所提交的内容(保留内容)
	git reset --soft HEAD^
	// 恢复对应commitID的内容(保留内容)
	git reset --hard commitID

例子:
初始化三个commit,每个commit对应添加内容a,b,c
在这里插入图片描述
reset --soft到b节点

git reset --soft 4fcd5771bbd2a81f1fe60716af79a103e9cc143b

结果:
在这里插入图片描述
此时我们软回退到b节点,git log信息中提交节点c的信息消失,并且c的内容被保留回退下来。
在这里插入图片描述
reset --hard到b节点

	git reset --hard 4fcd5771bbd2a81f1fe60716af79a103e9cc143b

当我们使用reset --hard时,git log信息中提交节点c的信息消失,并且c的内容不会被保留下来。
在这里插入图片描述

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值