Git使用汇总之git checkout -- <file>的真正用法

网上关于这个撤销指令的教程多的数不胜数,但是在自己学习中还是遇到一些坑,在此记录下来,也给同样遇到坑的同学一点参考

第一种说法:

第二种说法:

这就出现了两种意思,在我修改了工作区的内容后 使用 git checkout -- <file>到底是从缓存区还是版本库中还原呢 ,对此只有实践才有发言权

第一步:在管理库中添加一个版本:

第二步:在缓存区中添加一个版本:


第三步:修改工作区文档

第四步:第一次使用git checkout -- <file>:


好了这时还原的结果是从缓存区里拉取的还原,貌似CSDN的网友说的更对。别急现在还不能下结论,毕竟廖神怎么会犯这种低级错误呢

第五步:清空缓存区:

附:清空暂存区

所谓的暂存区仅仅是.git目录下的一个index文件罢了,这也是为了什么被称为index(索引)

a:3:{s:3:\"pic\";s:43:\"portal/201807/18/001723t4dck4mdo1etp1sx.png\";s:5:\"thumb\";s:0:\"\";s:6:\"remote\";N;}

当删除暂存区内容的时候,其实就是删除index文件中的内容,.git/objects目录中的内容不会被删除。

指令:rm .git/index 直接删除该文件夹即可

第六步:这个时候缓存区没有版本了再次使用git checkout -- <file>:


发现再次执行git checkout -- <file>会报找不到文件,说明git checkout -- <file>不会从版本库中拉取文件

第七步:执行git reset HEAD将HEAD区里HEAD版本给恢复到暂存区

第八步:这个时候缓存区没有版本了再次使用git checkout -- <file>:

结论

通过以上操作,可以得出结论git checkout -- <file>指令是从先从缓存区中拉取版本还原,并不会从版本库中拉取还原。

参考文章:

Git 中 git checkout -- <file>的真正用法 - 简书

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

慕城南风

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

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

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

打赏作者

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

抵扣说明:

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

余额充值