专栏首页任浩强的运维生涯关于git的reset指令说明-soft、mixed、hard

关于git的reset指令说明-soft、mixed、hard

    在开发过程中,git的版本管理越来越普及。在版本管理中,最常用和最重要的是重置提交的版本,恢复后悔做了的事。大家都知道用reset命令。但是有几种形态需要整理共享一下,也方便我自己查阅。

一、首先解析以下这三个相关的状态和概念,

1、HEAD:可以描述为当前分支最后一个提交。即本地的信息中的当前版本。

2、Index:在工作副本修改之后执行过git add操作的版本文件,可以commit了的。

3、Working Copy:工作副本是你正在修改,但是没有执行任何git操作的文件。

总的来说,

代码修改,还没做任何操作的时候就是 Working Copy,

git add * 操作之后就是Index,

git commit 之后就是HEAD。如果代码修改了之后进行git add 操作,然后git commit,那么所有三者(HEAD,INDEX(STAGING),WORKING COPY)都是相同的状态,内容相同。

二、reset

  1. soft(更改HEAD)(恢复git commit的操作)

软重置。本来origin的HEAD和本地的HEAD一样,如果你指定--soft参数,Git只是单纯的把本地HEAD更改到你指定的版本那么,整个过程中,就HEAD的定义发生了变化,其他像Working Copy 和Index都没有变化。该参数用于git commit后,又要恢复还没commit的场景,重新审查代码,然后再推上去。

  2.hard(更改三者)

--hard参数将会将会重置(HEAD,INDEX(STAGING),WORKING COPY),强制一致。该参数用于在把工作副本改成一塌糊涂的时候,包括工作副本,一股脑恢复。有些就单纯修改文件,其中有些git add了,有些git commit了,通通不管,可以一个命令恢复。

  3.mixed(default)(恢复git add的操作,包含恢复git commit的操作)

--mixed是reset的默认参数,也就是当你不指定任何参数时的参数。它将重置HEAD到另外一个commit,并且重置index以便和HEAD相匹配。

三、记忆方法

工作流中先是本地修改,然后git add,然后gitcommit。以本地修改为最高量级,以自己为中心。该参数用于你在本地改了文件一部分commit了,一部分刚好git add了,这时候你要恢复到你的工作副本状态,要求再次审查代码。

1、soft: 重置git commit

2、mixed: 重置git commit 和 git add

3、hard: 重置git commit 和 git add 和工作副本的修改。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Git基础:利用reset重置命令恢复commit代码及其扩展

    有时候代码写完 commit 了,发现用错分支了,就很尴尬,这时候可以用 reset 重置命令,将代码恢复到指定的版本。

    德顺
  • Git命令集之九——重置命令 原

        返回到上一个版本状态,需要注意,这个命令不会修改本地文件的内容,这些新的内容会变为未更新到缓存区的状态。

    珲少
  • 轻松掌握Git开发(三)版本的切换

    前面我们进行了两次提交,通过该指令就都显示出来了,包括提交的作者标识,提交时间,提交描述等。仔细观察,会发现这两次提交的信息展示不太一样:

    wangweijun
  • 轻松掌握Git开发(三)版本的切换

    前面我们进行了两次提交,通过该指令就都显示出来了,包括提交的作者标识,提交时间,提交描述等。仔细观察,会发现这两次提交的信息展示不太一样:

    ZackSock
  • 【git系列】git命令之撤销回退篇

    适用场景:开发过程,需求逻辑尚未实现,突然要切换版本解决问题,但是本次修改的代码并不想提交本地仓库,使用statsh命令暂存修改。

    沁溪源
  • Git删除暂存区或版本库中的文件

    Git有三大区(工作区、暂存区、版本库)以及几个状态(untracked、unstaged、uncommited),下面只是简述下Git的大概工作流程,详细的可...

    程序员小明
  • git版本控制

    mwangblog
  • git还原操作git reset、git revert和git checkout区别

    1、git checkout 使用场景:误删除仓库当中还存在的文件或者撤销未提交的修改 git checkout 1.php 2、git reset 使用...

    苦咖啡
  • git学习总结02 — 版本控制

    版本的前进后退本质是 HEAD 指针的移动,有三种移动指针进行版本控制的方式:索引、^、~。

    CS逍遥剑仙

作者介绍

一夕如环

博智税通信息科技股份有限公司广东分公司运维工程师

博智税通信息科技股份有限公司广东分公司 · 运维工程师 (已认证)

专栏

精选专题

活动推荐

扫码关注云+社区

领取腾讯云代金券