Git 操作:reset

在了解reset的用法前,建议读者需首先明晰git仓库的结构(working tree,index,local repository)官方文档中这样定义:git-reset - Reset current HEAD to the specified state。
current HEAD是local repository中指向当前所在branch的最新一次commit的标签,因此reset完成的是一个通过重置HEAD以完成版本回退操作。
使用方法:

git reset [-q] [<tree-ish>] [--] <pathspec>…​
git reset [-q] [--pathspec-from-file=<file> [--pathspec-file-nul]] [<tree-ish>]
git reset (--patch | -p) [<tree-ish>] [--] [<pathspec>…​]
git reset [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [<commit>]

前三种用于将特定路径(pathspec)的Index回退到某个branch的版本,注意着仅仅是对Index缓冲区的修改,应用场景较少,常用于git reset HEAD <file>以将某个在Index中已经修改但未commit的文件重置为add前的版本,相当于add的反操作。
在工作中我们常常希望使用reset将整体代码回退到某一版本,使用较多的是上述第四种中的soft、hard与mixed用法,默认参数是–mixed和HEAD(local respository中的当前版本)。下面具体介绍其用法。

reset --soft

git reset --soft <commit>

仅仅将local repository重置为某一次commit的版本(将HEAD标签指向为该commit),在这一次commit后所有的修改都会变成未commit的状态。

reset --mixed(default)

git reset <commit>

将local repository和Index同时重置为该commit的版本,working tree不变,因此可能会产生很多没有add的文件,但不存在未commit的文件。

reset --hard

git reset --hard <commit>

同时将local repository、index和working tree回退到某个commit的版本,注意工作区working tree中的代码也会回退到该版本。

Git操作:reset相关推荐

  1. git操作手册_基本的Git手册

    git操作手册 介绍 (Introduction) Hi! I am Sanjula, and in this guide I hope to teach you a little bit about ...

  2. 手把手教你熟悉Git操作

    文章目录 Git 一.版本控制 二.Windows安装Git 1. Git 安装 2. Git 一次性配置 三.理解Git文件的三种状态与工作模式 四.创建版本库并提交文件 1. 初始化git 2. ...

  3. Git操作手册|命令速查表

    Git操作手册|命令速查表 这篇文章主要介绍Git分布式版本管理与集中式管理的一些差异,总结下Git常用命令作为日后的速查表,最后介绍Git进阶的一些案例. 本文分为以下几个部分: Git与SVN差异 ...

  4. 【Tools】git操作总结

    git操作总结 下载的工程带有子工程submodule: 当使用git clone下来的工程中带有submodule时,初始的时候,submodule的内容并不会自动下载下来的,此时,只需执行如下命令 ...

  5. Git操作常用的命令都在这里了

    转载自 Git操作常用的命令都在这里了 创建仓库 git init 在当前目录执行,会生成 .git目录文件,这个和SVN一致. 提交到仓库 git commit -m "first com ...

  6. git 修改分支名字_基础Git操作与GitHub协作吐血整理,收好!| 原力计划

    作者 | 光子俊来源 | CSDN博客出品 | CSDN(ID:CSDNnews) Git介绍 Git是目前世界上最先进的分布式版本控制系统,可以为我们管理项目.构建工程.多人协作提供便利,作为一个爱 ...

  7. Intellij 中的git操作 转!

    http://blog.csdn.net/lovesummerforever/article/details/50032937 Git原理以后会分章节介绍,本次主要说一下intellij怎样操作git ...

  8. git 修改commit_结合IDEA与命令行,解决常用git操作与特殊情况的最佳实践

    本文适合总觉得git操作不够顺滑,被各种分支问题搞得焦头烂额的Java业务开发同学. 如果是git的初学者,建议搜索下git其他入门教程,这方面资料很多,非常推荐git init一个新项目,然后本地操 ...

  9. 基础Git操作与GitHub协作吐血整理,收好!| 原力计划

    作者 | 光子俊 来源 | CSDN博客 出品 | CSDN(ID:CSDNnews) Git介绍 Git是目前世界上最先进的分布式版本控制系统,可以为我们管理项目.构建工程.多人协作提供便利,作为一 ...

最新文章

  1. 鸿洋android屏幕适配四部曲-传送门
  2. python怎么安装myqr模块-python二维码操作:对QRCode和MyQR入门详解
  3. php7 imagick扩展,php7安装imagick扩展
  4. crontab每小时运行一次(转)
  5. Linux用php上传表单文件,文件太大提示[413 Request Entity Too Large]
  6. [CF559C]Gerald and Giant Chess
  7. 不安装iTunes实现USB数据线与电脑传文件
  8. 论软件架构建模技术与应用
  9. spark中RSS工具简介
  10. windows安装sk-video模块
  11. vue使用天气API接口
  12. html 游戏键盘,用html+js+css做一个模拟键盘
  13. 免费的 AI 动作捕捉工具 #Rokoko Video
  14. windows下python如何安装模块或包? How to install package or module in windows OS when using PYTHON?
  15. 用js处理打卡记录excel表
  16. php微信公众号开发之网页授权
  17. 安装卡巴斯基个人网络版KIS 7.0之后的蓝屏解决方案
  18. NFSTAT寄存器 的RnB的bit4
  19. PHP学习之路(一)——初学PHP
  20. 临界比例度法 matlab程序,扩充临界比例度法整定参数及PID控制.doc

热门文章

  1. RaycastHit.transform与RaycastHit.collider
  2. Win10取消设置打开IE自动跳转至Edge
  3. [CV] Rotated IoU 计算旋转矩形之间的重叠面积
  4. 锤子手机能算一个好的产品么?
  5. 项目管理之Scrum
  6. 基于MATLAB的验证码识别
  7. 《Essential C++ 中文版》 读书笔记及习题解答
  8. 使用 Processon 画图的技巧
  9. C语言 · 礼物盒
  10. CreateFileMapping/OpenFileMapping/MapViewOfFile