关于git reset指令的一些应用和理解

git将软件开发中分为三个区域,分别是正在编辑的working工作目录、index暂存区(用于隔离working工作目录和本地仓库)以及本地仓库。本地仓库会将每一次的commit版本进行保存,head是指向当前操作分支的指针。

假设我们已经进行了如下操作:

version1
...

对版本1进行git add与git commit

version2
...

对版本2进行git add与git commit

当前working中内容和index内容与head内容均为verion2。

若我们想对当前版本进行回滚操作,可以使用git reset完成。git reset又有三种模式,分别为--soft,--mixed,--hard。他们分别可以抽象成几个不同的隔板将自上而下更新内容的水桶间隔开。

一、--soft模式 

git reset --hard HEAD~1

将上层隔板插入,并对head水桶进行换水操作。

如此一来index与working区域中的代码都不会被改变。

二、--mixed模式

git reset --mixed HEAD~1

 将下层隔板插入,并对head水桶进行换水操作,并向下影响index。

这样除了working区的代码没有被改变,index与head中的代码已经全部回滚。

三、--hard模式

git reset --hard HEAD~1

 该模式下如其名字一般十分强力,将所有隔板拔出,直接从head向下将index与working区域全部换水。

一次性完成全部的版本回滚。 

实质上,head的改变只是指针的移动。

并非内容的替换,故其实各个版本的内容依旧存放在本地仓库之中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值