git reset 使用及回滚

目录

一、git reset 参数

1. --soft  

2.  --mixed  

3.  --hard  

二、 如何回滚文件

1. 修改完,还未执行git add 

2.使用git add 提交到暂存区,还未commit之前

3.已经git commit,还未git push

4.已经git push  


一、git reset 参数

 

1. --soft  

仅仅移动当前Head指针,不会改变工作区和暂存区的内容  

2.  --mixed  

是reset的默认参数,移动head指针,改变暂存区内容,但不会改变工作区 

3.  --hard  

当前head指针、工作区和暂存区内容全部改变  

那我个人的理解,--soft用处不是很多,当commit之后想撤回commit,但还不想覆盖工作区内容时,使用--mixed;当想完全回滚时,使用--hard来覆盖工作区。

 

二、 如何回滚文件

1. 修改完,还未执行git add 

git checkout .

使用暂存区的文件覆盖工作区,所以执行完git add .之后,再执行该命令是无效的  
git checkout .和git add .是一对反义词

2.使用git add 提交到暂存区,还未commit之前

git reset  先用Head指针覆盖当前的暂存区内容
git checkout . 再用暂存区内容覆盖工作区内容

或者使用
 

git reset --hard 直接使用head覆盖当前暂存区和工作区

3.已经git commit,还未git push

git reset --hard origin/master

 从远程仓库把代码取回来,然后覆盖本地仓库、本地暂存区和工作区  

或者使用

 git reset --hard last_commit_id

  覆盖本地仓库、暂存区和工作区,其中查看last_commit_id命令为

 git log

  或者使用

git reset --mixed last_commit_id  

覆盖本地的暂存区,再执行
 

git checkout . 覆盖本地工作区

4.已经git push  


  那就没办法了

实际经常使用的情况有两种
1. 修改错了,完全覆盖掉,使用
 

git reset --hard commit_id

2. 错误的把大文件添加到了缓存区,使用

git reset

撤回添加
 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值