四、将history区的文件还原到stage区

这个需求很常见,比如说我用了一个git add .一股脑把所有修改加入stage,但是突然想起来文件a.txt中的代码我还没写完,不应该把它commithistory区,所以我得把它从stage中撤销,等后面我写完了再提交。

指令

$ git reset 一个或者多个文件

该命令的自然语言描述是:不改变work dir中的任何数据,将stage区域中的a.txt文件还原成HEAD指向的commit history中的样子。

风险等级:低风险。

理由:不会改变work dir中的数据,会改变stage区的数据,所以应确保stage中被改动数据是可以抛弃的。

 

git reset 进阶

git reset 是用于变更暂存区内容。Git reset 命令有三个参数:git reset –soft; git reset –mixed; git reset –hard;

1、–soft 这个只是把 HEAD 指向的 commit 恢复到你指定的 commit,暂存区 工作区不变

2、–hard 这个是 把 HEAD, 暂存区, 工作区 都修改为 你指定的 commit 的时候的文件状态

3、–mixed 这个是默认参数,把 HEAD,暂存区 修改为 你指定的 commit 的时候的文件状态,工作区保持不变

git reset说明

故上面的指令的完整写法是

$ git reset --mixed HEAD 一个或者多个文件
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值