git reset撤销代码的理解

本文详细介绍了Git的硬撤销和软撤销操作,包括它们在不同场景下的应用实例。通过案例展示了如何使用gitreset--hardHEAD恢复到某个版本,以及gitreset--soft回退到指定提交,但保留暂存区内容。同时,讲解了如何使用gitpush-f强制将本地更改推送到远程仓库,确保远程仓库与本地同步。
摘要由CSDN通过智能技术生成

硬撤销实战案例

初始状态:在develop分支上有一文件test.txt。
1.添加文件namelist.txt
2.编辑文件test.txt
3.执行git reset --hard HEAD
结果,test.txt回到初始状态,但是namelist.txt还在
如果在第二和第三步之间骤执行了git add .
那么到执行第三步后test.txt会回到初始状态,namelist.txt也会不见

在这里插入图片描述
首先要明白上图,然后再来理解上述案例,git reset --hard HEAD只会撤销被添加在暂存区的文件,如果新文件没有被添加到暂存区,是无法git reset --hard HEAD来删除掉的

软撤销实战案例

在这里插入图片描述
首先查看当前状态为clean,接下来软撤销到“master二次代码”,如下:
在这里插入图片描述
由上图可见,git仓库已经被撤回到了cc765ff77e1805228ff78034554a647b275a8c3d,但是暂存区还是保持在ac445f01d039f3f31b7a54e9a98c4ce93a5a29f5
如果你要撤销暂存区的内容到工作区呢,如下图:
在这里插入图片描述
状态回到了Changes not staged for commit,也就是在git add .之前的状态
再者,如果此刻,“\345\217\221.txt”文件我也不要了,那么就硬撤销,如下图:
在这里插入图片描述
是不,工作区、暂存区和git仓库都撤回到了“master二次代码”的那个版本

同步撤销到远程仓库

代码撤销好了,那么我要push到远程去,推不上去要:
在这里插入图片描述
杀手锏来了,执行git push -f
在这里插入图片描述
这样就可以将代码强行推到远程仓库去,让远程仓库的代码与本地保持同步,其中-f就是force的首字母,force是强制的意思

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值