Git学习之Git 重置

==============================
分支游标master
==============================
引用 refs/heads/master 在有新的提交发生的时候,指向新的提交。
(1) 将master游标重置到旧的提交上(注意:使用了--hard 参数,会破坏工作区未提交的改动)
 $ git reset --hard HEAD^
(2) 重置命令不仅可以重置到前一次提交,而且还可以使用提交ID重置到任何一次提交
 git reset --hard 9e8a761
 使用重置命令会丢弃历史,即曾经的修改会消失。

=============================
用reflog 挽救错误的重置
=============================
(1) 查看master分支的日志文件
 $ tail -5 .git/logs/refs/heads/master
(2) 使用git reflog 命令的子命令可以显示此文件的内容
 $ git reflog show master | head -5
(3) 重置 master 为两次改变之前的值
 $ git reset --hard master@{2}
(4) 使用--hard参数 $ git reset --hard <commit>
 替换引用的指向:引用指向新的提交ID
 替换暂存区:暂存区的内容和引用指向的目录树一致
 替换工作区:工作区的内容变的和暂存区一致,也和HEAD所指向的目录树内容相同
(5) git reset --soft <commit>
 只更改引用的指向,不改变工作区和暂存区
(6) 使用参数 --mixed 或不使用参数(默认为--mixed)
 更改引用的指向及重置暂存区,不改变工作区
(7) git reset
 使用HEAD指向的目录树重置暂存区,但是不更改工作区
(8) git reset HEAD
 使用HEAD指向的目录树重置暂存区,但是不更改工作区
(9) git reset -- filename
 仅将文件filename的改动撤出暂存区,其它文件不变
(10)git reset HEAD filename
 仅将文件filename的改动撤出暂存区,其它文件不变
(11)git reset HEAD^
 工作区不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次
(12)git reset --mixed HEAD^
 工作区不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次
(13)git reset --hard HEAD^
 彻底撤销最近的提交。引用回退到上一次,而且工作区和暂存区都会回退到上一次提交的状态。
 自上一次以来的提交丢失。 


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值