zoukankan      html  css  js  c++  java
  • GIT中常用命令详解1.reset

    ***操作始终在本分支上

    ***主要用于重置暂存区

    内部操作见下图:

    6217760-40e40d3dc9f818ef.jpg
    git reset

    //git reset 有两种用法:

    一是用于切换当前分支master 所指向的提交commit来替换当前暂存区或工作区的内容 (分为hard, soft 和mixed);

    ‌$ git reset --hard 456gr3

    //完成全部3个步骤,即改变引用master 的指向(指向另一个提交commit, 其ID 为命令参数456gr3 );用新指向的commit 目录树替换暂存区的内容;用新指向的commit 目录树替换工作区的内容。

    ‌$ git reset --soft 456gr3

    //完成1 个步骤,即改变引用master 的指向(指向另一个提交commit, 其ID 为命令参数456gr3 );暂存区的内容和工作区的内容不变。

    ‌$ git reset --mixed 456gr3

    ‌$ git reset 456gr3

    //以上两条命令相等,命令默认采用mixed选项。其完成2个步骤,即改变引用master 的指向(指向另一个提交commit, 其ID 为命令参数456gr3 );用新指向的commit 目录树替换暂存区的内容;工作区的内容保持不变。

    ‌$ git reset --soft HEAD ^

    //仅将引用master 切换到前一个提交,暂存和工作区不变。常用于撤销最近一次提交。

    ‌$ git reset HEAD ^

    //将引用master 切换到前一个提交,并更新暂存区,但工作区不变。

    ‌$ git reset --hard HEAD ^

    //彻底撤销最近一次提交,三区全都恢复到上次提交时的状态

    ‌$ git reset HEAD

    ‌$ git reset

    //以上两条命令等价。意为重置当前暂存区,也即是撤销所有对暂存区的提交

    二是用指定的提交下的文件替换掉当前暂存区的文件。

    ‌$ git reset 87gy43 -- a.txt

    //用ID (哈希值)为87gy43开头的提交下的a.txt 替换掉当前暂存区下的a.txt

    ‌$ git reset  -- a.txt

    //撤销对a.txt 的add 操作。即用当前HEAD 所指的提交下的a.txt 替换掉当前暂存区里保存的a.txt ,暂存区里其它文件不变。

  • 相关阅读:
    C# — WinForm TCP连接之服务器端
    Linq to SQL — Group by
    pytorch model()[] 模型对象类型
    git官网下载太慢解决方法
    财务分析
    python错题集
    SQL 开窗函数 头尾函数 first_value()/last value()不常用
    徐杨老师的公开课关于敏捷算法
    SQL 开窗函数:range和rows的区别
    SQL开窗函数 row_number(),dense_rank(), rank()
  • 原文地址:https://www.cnblogs.com/leon1124/p/14039873.html
Copyright © 2011-2022 走看看