Git 回退三大参数 --hard --mixed --soft

Git 回退三大参数 --hard --mixed --soft

从工作区到分支范围:hard > mixed > soft

一、git reset --hard [ID]

  1. 范围:工作区到暂存区再到分支(都变到提交的日志ID(默认最近一次))
  2. 示例:
    1. 现在我成功提交了两次作业,现在我需要回退到第一次作业的状态。ufcoEd.pnguf2my822222222222222222222222222222222222222222.png
    2. 回退版本 -->“第一次作业的ID” <38ddbee>ufRdjf.pngufRBDS.png
    3. 现在已经回退到“第一次作业(38ddbee)”状态,但是无法回到“第二次作业”,因为“暂存区”,“工作区”,“分支”都回退到了这个状态;所以此操作需要谨慎考虑

二、git reset --mixed [ID]

范围:暂存区(丢失最新一次add),工作区(可以恢复到最新,但是工作区文件不会丢失文件)
示例:
  1. 现在有三个提交好的文件,然后add错误了一个“新建文件文档.txt”,需求:取消本次add(删除暂存区的这次记录),文件的下标有个“+”号,添加成功。ufbNXd.png
  2. 现在回退到上次成功提交的状态即可。ufb4A0.png
  3. 现在发现文件的“+”号已经消失,说明就删掉了上次的误add。(在此命令中后面没有添加日志Id,即是恢复到最近的一次成功提交的状态)。
  4. 之所以这个操作不会影响工作区的内容(删除文件),只会影响工作文件的状态(图标),是因为此操作可以回到任何点的add前的状态。如下图:节点1到3的状态都是可以自由切换的,唯一就是恢复到1,2,3后,节点3后面的add后的暂存区永久丢失。(大多时候是来解决误add的)
    ufLnd1.png

三、git reset --soft [ID]

范围:工作区,暂存区,分支 >> 不会修改任何内容,只会将分支的指针指向你的目的节点,工作区状态也同步变化。
示例:
  1. 现在操作了add 到缓存区,然后切换到上一个分支uhiiJH.png
  2. 切换到是上一个分支。uhmPxg.pnguhue3T.png
  3. work5.txt的状态,变为了土灰感叹号,说明切换成功。现在有恢复之前的状态(切换到最新的分支即可)uhKMz8.png
  4. 现在已恢复到 b91f6bbwork5.txt文件的状态恢复到了之前的状态,并且暂存区也没有丢失。所以此操作是不会影响到任内容的改变。最为保险的操作。

四、最后祝大家次次提交成功

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值