GIT中常用命令详解1.reset

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

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

内部操作见下图:

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 1. 安装 Github 查看是否安装git: $ git config --global user.name "...
    Albert_Sun阅读 13,737评论 9 163
  • 以下笔记主要参考gitgot,大致了解git使用和原理。 第一部分我们从个人的视角去研究如何用好Git,并且揭示G...
    carolwhite阅读 2,430评论 0 1
  • 以前的我,也是口号军里的一员! 常常跟着大军喊:我要改变!我要改变! 一边喊着,一边在等待改变的机会降临...
    愉说阅读 243评论 4 2
  • 一切可以妥当的一定会妥当!准备迎接奇迹!很喜欢的话送给众生!这几句话在我最需要帮助的时候让我我感觉很神奇! 我近期...
    belivePossible阅读 177评论 2 1