zoukankan      html  css  js  c++  java
  • git reset 进阶

    命令

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

    作用

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

    mode详解:

    1.--soft

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

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

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

    • eg

    当前分支是 masterC是最新提交,即HEAD指向C

    执行:

    git reset --soft HEAD~1
    

    执行后:

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

    执行:

    git status
    

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

    2.--mixed(默认模式)

    • 版本库:HEAD 指向指定

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

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

    • eg

    当前分支是 masterC是最新提交,即HEAD指向C

    执行:

    git reset --mixed HEAD~1
    

    执行后:

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

    执行:

    git status
    

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

    3.--hard

    • 版本库:HEAD 指向指定

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

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

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

    • eg

    当前分支是 masterC是最新提交,即HEAD指向C

    执行:

    git reset --hard HEAD~1
    

    执行后:

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

    执行:

    git status
    

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

    4.--merge

    不常用

    5.--keep

    不常用


    转载:

    git reset 进阶

  • 相关阅读:
    函数数组
    编译和链接
    线程详解
    linux内核完全剖析——基于0.12内核-笔记(2)-统一编址和独立编址
    linux内核完全剖析——基于0.12内核-笔记(1)-CPU 数据通信
    input子系统事件处理层(evdev)的环形缓冲区【转】
    NFC驱动调试
    little kernel 小结
    Linux 设备树的解释
    Android中SELinux的TE简介【转】
  • 原文地址:https://www.cnblogs.com/taohuaya/p/14620493.html
Copyright © 2011-2022 走看看