Git学习之Git 重置

来源:互联网 发布:蓝牙怎么分享软件 编辑:程序博客网 时间:2024/05/17 09:16

==============================
分支游标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^
 彻底撤销最近的提交。引用回退到上一次,而且工作区和暂存区都会回退到上一次提交的状态。
 自上一次以来的提交丢失。 


 

0 0
原创粉丝点击