git reset命令三种命令的区别

idea中回退版本reset type有三种类型mixed、soft 、hard,那三种类型有什么区别呢?下边来详细说一下

mixed

默认选中的类型,会将工作目录的修改、暂存区的内容(git add操作提交的地方)以及由 reset 所导致的新的文件差异,都放进工作目录。比如:

  • 第一次提交了a文件
  • 第二次提交了b文件
  • 第三次提交了c文件

现在reset到第一次提交,b和c文件都会放到工作目录,将之前提交的版本文件全部恢复到未暂存状态

soft

回退一个版本,不清空暂存区,将已提交的内容恢复到暂存区,不影响原来本地的文件(未提交的也不受影响) ,这些文件还在暂存区中

上边的文件例子,reset到第一次提交。还是含有三个文件的只不过b和c文件前面是+标记,表示已经git add 到暂存区中

hard

回退一个版本,清空暂存区,将已提交的内容的版本恢复到本地,本地的文件也将被恢复的版本替换
上边的文件例子,reset到第一次提交,执行后现在就只剩下a文件

所以这个需要谨慎操作!!!!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
git reset命令Git版本控制系统中的一个命令,用于将当前分支的HEAD指针移动到指定的提交,并且可以选择性地更新索引和工作区的内容。它的主要参数有三种模式:soft、mixed和hard,它们决定了reset命令对索引和工作区的影响。 1. soft模式:在soft模式下,reset命令只会移动HEAD指针到指定的提交,不会修改索引和工作区的内容。这意味着你可以重新提交之前的更改,而不会丢失这些更改。 2. mixed模式:在mixed模式下,reset命令会移动HEAD指针到指定的提交,并且会将索引重置为该提交的状态,但不会修改工作区的内容。这意味着你可以重新提交之前的更改,但是需要重新添加这些更改到索引中。 3. hard模式:在hard模式下,reset命令会移动HEAD指针到指定的提交,并且会将索引和工作区都重置为该提交的状态。这意味着你会丢失之前的更改,所以在使用hard模式时要谨慎操作。 下面是几个示例演示了git reset命令的使用: 1. 使用soft模式移动HEAD指针到指定的提交,不修改索引和工作区的内容: ```shell git reset --soft <commitid> ``` 2. 使用mixed模式移动HEAD指针到指定的提交,并将索引重置为该提交的状态: ```shell git reset --mixed <commitid> ``` 3. 使用hard模式移动HEAD指针到指定的提交,并将索引和工作区都重置为该提交的状态: ```shell git reset --hard <commitid> ``` 请注意,<commitid>是指你要移动到的目标提交的ID或引用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

码厚炮

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值