Git学习之旅 - 深入理解git reset 命令

栏目: 编程工具 · 发布时间: 5年前

内容简介:重置命令(git reset)是Git 最常用的命令之一,也是最危险最容易误用的命令。来看看git reset命令用法。-----------------------------------------------------------------------------------------------------------用法一:

重置命令(git reset)是Git 最常用的命令之一,也是最危险最容易误用的命令。来看看git reset命令用法。

-----------------------------------------------------------------------------------------------------------

用法一: git reset [-q]  [] [--]

用法二: git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] []

-----------------------------------------------------------------------------------------------------------

上面列出了两个用法,其中都是可选项,可以使用引用或提交ID,如果省略则相当于使用了HEAD的指向作为提交ID.

上面列出的两种祖坟的区别在于,第一种用法在命令中包含路径.为了避免路径和引用(或者提交ID)同名而发生冲突,可以在前用两个连续的短线(减号)作为分隔。

第一种用法(包含了路径的用法)不会重置引用,更不会改变工作区,而是用指定提交状态()下的文件()替换掉暂存区中的文件。例如命令git reset HEAD 相当于取消之前执行的git add 命令时改变的暂存区。

第二种用法(不使用路径的用法)则会重置引用。根据不同的选项,可以对暂存区或工作区进行重置。参照下面的版本库模型图,来看一看不同的参数对第二种重置语法的影响。

Git学习之旅 - 深入理解git reset 命令

使用参数 --hard, 如:git reset --hard .

会执行上图中的全部动作1,2,3,即:

1.替换引用的指向。引用指向新的提交ID.

2.替换暂存区。替换后,暂存区的内容和引用指向的目录树一致。

3.替换工作区。替换后,工作区的内容变得和暂存区一致,也和HEAD所指向的目录树内容相同。

使用参数 --soft, 如:git reset --soft .

会执行上图中的操作1。即只更改引用的指向,不改变暂存区和工作区。

使用参数 --mixed或不使用参数(默认为 --mixed),如:git reset .

会执行上图中的操作1和操作2.即更改引用的指向及重置暂存区,但是不改变工作区。

下面通过一些示例,看一下重置命令的不同用法。

命令:git reset

仅用HEAD指向的目录树重置暂存区,工作区不会受到影响,相当于将之前用git add命令更新到暂存区的内容撤出暂存区。引用也未改变,因为引用重置到HEAD相当于没有重置。

命令:git reset HEAD

同上

命令:git reset -- filename

仅将文件filename 的改动撤出暂存区,暂存区中其它文件不改变。相当于对命令git add filename 的反操作。

命令:git reset HEAD filename

同上

命令:git reset --soft HEAD^

工作区和暂存区不改变,但是引用向前回退一次。当对最新提交的提交说明或提交的更改不满意时,撤销最新的提交以便重新提交。

命令:git reset HEAD^

工作区不改变,但是暂存区会回退到上一次提交之前,引用也会回退一次。

命令:git reset --mixed HEAD^

同上

命令:git reset --hard HEAD^

彻底撤销最近的提交。引用回退到前一次,而且工作区和暂存区都会回退到上一次提交的状态。自行一次以来的提交全部丢失。

Linux公社的RSS地址https://www.linuxidc.com/rssFeed.aspx

本文永久更新链接地址: https://www.linuxidc.com/Linux/2019-01/156567.htm


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Redis 深度历险:核心原理与应用实践

Redis 深度历险:核心原理与应用实践

钱文品 / 电子工业出版社 / 2019-1 / 79

Redis 是互联网技术架构在存储系统中使用得最为广泛的中间件,也是中高级后端工程师技术面试中面试官最喜欢问的工程技能之一,特别是那些优秀的互联网公司,通常要求面试者不仅仅掌握 Redis 基础用法,还要理解 Redis 内部实现的细节原理。《Redis 深度历险:核心原理与应用实践》作者老钱在使用 Redis 上积累了丰富的实战经验,希望帮助更多后端开发者更快、更深入地掌握 Redis 技能。 ......一起来看看 《Redis 深度历险:核心原理与应用实践》 这本书的介绍吧!

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

XML 在线格式化
XML 在线格式化

在线 XML 格式化压缩工具