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 ,暂存区里其它文件不变。

  • 相关阅读:
    JavaScript中{}+{}
    网站性能优化
    C++是如何从代码到游戏的?
    C++是如何从代码到游戏的?
    【力扣】至少是其他数字两倍的最大数 中速题解
    代码编辑器选择Atom还是VScode?
    TIOBE 4 月榜单:少儿编程语言 Scratch 进入 TOP 20
    熟悉一下oncontextmenu事件的知识
    input属性type为file打开文件资源管理器时,如何限制多次选取或只能一次选取的行为
    HTML5的拖放事件
  • 原文地址:https://www.cnblogs.com/leon1124/p/14039873.html
Copyright © 2011-2022 走看看