0


git reset中hard与soft区别

前言

 对于我们日常开发中,我们常用的方法可能是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的内容不会被保留下来。
在这里插入图片描述

标签: git

本文转载自: https://blog.csdn.net/liu19721018/article/details/124123527
版权归原作者 我的名字豌豆 所有, 如有侵权,请联系我们删除。

“git reset中hard与soft区别”的评论:

还没有评论