zoukankan      html  css  js  c++  java
  • 关于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 和工作副本的修改。

  • 相关阅读:
    由博客园页面样式挖出的一款心机软件
    SQL Server 各任务所维护
    [转载]SQL Server查找包含某关键字的存储过程3种方法
    Hibernate简单注解开发和事务处理(四)
    Hibernate实现简单的CRUD操作和常见类(三)
    Hibernate中hibernate.cfg.xml文件和Xxx.hbm.xml文件的详细解释(二)
    Hibernate开发环境的简单搭建及常见错误(一)
    Struts2配置异常错误处理(十六)
    Struts2实现类型转换器(十五)
    Struts2实现JSON和Ajax操作(十四)
  • 原文地址:https://www.cnblogs.com/hodge01/p/10277757.html
Copyright © 2011-2022 走看看