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 和工作副本的修改。

  • 相关阅读:
    python__基础 : 类属性,类方法,静态方法
    python__基础 : 类的继承,调用父类的属性和方法
    python__基础 : 类的__init__,__str__,__del__方法
    Python__关于列表的引用 以append操作为例
    HTML5 Canvas 绘制图片不显示的问题
    MySQL 查询排除指定字段、自定义变量、动态执行SQL
    .Net系列 Transaction 事务
    Redis 基本操作
    C# 数值计算、转换
    详解.NET IL代码
  • 原文地址:https://www.cnblogs.com/hodge01/p/10277757.html
Copyright © 2011-2022 走看看