git reset & checkout <file> 详解

参考:

  • https://www.jianshu.com/p/c2ec5f06cf1a
  • https://www.runoob.com/git/git-reset.html
  • https://www.runoob.com/git/git-basic-operations.html

git reset

git reset 命令用于回退版本,可以指定退回某一次提交的版本。
git reset 命令语法格式如下:

git reset [--soft | --mixed | --hard] [HEAD]

有三种模式,分别是 hard, soft, mixed,默认是 mixed 模式,不同的模式会产生不同的效果。

先说第一种模式,hard
hard模式其实很暴力,暴力就显得很简单,git reset --hard commit_id使用该命令,会将本地分支回滚到commit_id对应的版本,暂存区将被清空。PS:谨慎使用该命令,特别是暂存区有你需要保留的一些更改。

第二种模式,soft
将本地的分支指向commit_id对应的提交,且reset之前和reset之后的提交之间更新的内容,会被还原到暂存区中(变为 to be committed状态),reset之前修改的内容不会丢失。

第三种模式,mixed
该模式为reset的默认模式,该模式和soft之间的差异在于,reset之前和reset之后的提交之间更新的内容,会被还原到工作区中 (重新变为unstage状态),同样的,reset之前修改的内容不会丢失。该模式可用于将暂存区全部修改或某个文件修改重新变为unstage状态,命令如下:

git reset HEAD 或 git reset # 默认是HEAD
git reset HEAD <file>git reset <file>

git checkout

git checkout 可用于检出某分支,或者将某个文件恢复到某个版本,后者的使用方式如下:

git checkout HEAD <file>git checkout <file>git checkout -- <file>  # 默认是HEAD
git checkout commit_id <file>git checkout commit_id -- <file>

该命令常用于撤销对某个文件的修改。PS:该命令也要谨慎使用,使用该命令后,会丢失该文件的修改内容。

git 流程两张参考图
在这里插入图片描述
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值