博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
git reset 进阶
阅读量:7174 次
发布时间:2019-06-29

本文共 1143 字,大约阅读时间需要 3 分钟。

命令:

git reset [--hard | soft | mixed | merge | keep ]

作用:

将当前分支重设到指定的<commit>(默认是HEAD,即最新提交)。并且根据[mode]参数能指定重置(reset)idex或是working directory。

mode详解:

1.--soft

  • 版本库(repository):HEAD 指向指定<commit>

  • 暂存区(index):不重置到指定<commit>,这次<commit>之后的所有变更都撤销到此

  • 工作区(working directory):无变化

  • eg

当前分支是master,<commit>C是最新提交,即HEAD指向<commit>C

image.png

执行:

$ git reset --soft HEAD~1

执行后:

image.png

①版本库:HEAD指向<commit>B;②暂存区:<commit>C撤销到暂存区;③工作区:无变化

执行:

$ git status

可以看到<commit>C撤销到了暂存区,处于"Changes to be committed"状态。

2.--mixed(默认模式)

  • 版本库:HEAD 指向指定<commit>

  • 暂存区(index):重置到指定<commit>

  • 工作区(working directory):这次<commit>之后的所有变更都撤销到此

  • eg

当前分支是master,<commit>C是最新提交,即HEAD指向<commit>C

image.png

执行:

$ git reset --mixed HEAD~1

执行后:

image.png

①版本库:HEAD指向<commit>B;②暂存区:重置到<commit>B;③工作区:<commit>C撤销到工作区

执行:

$ git status

可以看到<commit>C撤销到了工作区,处于"unstage"状态。

3.--hard

  • 版本库:HEAD 指向指定<commit>

  • 暂存区(index):重置到指定<commit>

  • 工作区(working directory):重置到指定<commit>

  • 注意:工作区未add的修改和暂存区未commit的修改,全部丢弃。(如果想回到最新提交可用 git reflog 查看commit号 然后再利用本命令恢复)

  • eg

当前分支是master,<commit>C是最新提交,即HEAD指向<commit>C

image.png

执行:

$ git reset --hard HEAD~1

执行后:

image.png

①版本库:HEAD指向<commit>B;②暂存区:重置到<commit>B;③工作区:重置到<commit>B

执行:

$ git status

可以看到工作空间是干净的

4.--merge

  • 不常用

5.--keep

  • 不常用

转载地址:http://lzdzm.baihongyu.com/

你可能感兴趣的文章
LeetCode: Minimum Depth of Binary Tree
查看>>
可运行的代码
查看>>
Oracle数据库添加新字段后加载页面报错 java.lang.IllegalArgumentException
查看>>
CSU 1505: 酷酷的单词【字符串】
查看>>
198. 打家劫舍
查看>>
错误之处(二)
查看>>
CSS选择器 < ~ +
查看>>
Opengl_es模型矩阵位置:glFrustumx与glTranslatef参数的相互影响--立方体旋转特效
查看>>
JS小功能系列8省市联动
查看>>
《程序是怎样跑起来的》第八章读后感
查看>>
YCD 软件更新方法
查看>>
CentOS 6.5 + Nginx 1.8.0 + PHP 5.6(with PHP-FPM) 负载均衡源码安装 之 (四)问题汇总
查看>>
poj2524(并查集)买一送一hdu1213
查看>>
ADO.NET详解----核心对象的使用
查看>>
ICM Technex 2018 and Codeforces Round #463 (Div. 1 + Div. 2, combined)
查看>>
Using MySQL Enterprise Monitor Tools
查看>>
SQL Server 审核(Audit)-- 审核与应用程序设计架构
查看>>
管理Linux日志文件工具
查看>>
在64位Windows Server 2008 R2上安装mtools
查看>>
SQL Server内存泄漏
查看>>