git reset 参数详解

git reset

首先,让我们来解释几个定义.

  • HEAD 指向当前branch最顶端的一个commit,该分支上一次commit后的节点

  • Index The index, 也可以被认为是staging area(暂存区), 是一堆将在下一次commit中提交的文件,提交之后它就是 HEAD的父节点. 一般指git add添加的文件。

  • Working Copy(工作副本)当前工作目录下的文件,一般指,有修改,没有 git add,没有 git commit的文件

改变流程如下

当第一次checkout一个新的分支,HEAD指向该分支上最近一次commit。它和index和working copy是一样的。

当修改了一个文件,working copy不再和index和HEAD相同了,所以当文件有改动,它会标记这些文件。

执行 git add命令,这条命令会将上面修改的文件缓存在index中,working copy和index相同了,而他们俩和HEAD不同了。

执行 git commit,Git创建了一个新的commit,HEAD这时指向这个新的commit,此时,HEAD & index & working copy又相同了,

命令

soft

git reset --soft commit-id 改变HEAD,指向那个你要reset到的commit上。而working copy和index不被改变。 即回退到某个版本,只回退了commit的信息,index和working copy中的文件都不改变。如果还要提交,直接commit即可。

mixed

git reset --mixed 相当于git reset此为默认方式, 改变HEAD和index,指向那个你要reset到的commit上。working copy文件不被改变。 即:它回退到某个版本,只保留源码,回退commit和index信息
例:

  • git reset HEAD filepathname放弃缓存区中某个文件的更改 working copy的修改并不会消失,而是取消暂存(index)。
  • git reset HEAD .放弃所有的缓存区的更改 working copy的修改并不会消失,而是取消暂存(index)。

hard

git reset --hard HEAD & index & working copy同时改变到你要reset到的那个commit上。 即 :彻底回退到某个版本,本地的源码也会变为上一个版本的内容
例:

  • git reset --hard HEAD^ 回退到上一次commit的状态。working copy的修改丢失
  • git reset --hard commit-id 可以用来回退到任意版本。working copy的修改丢失
  • 7
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
git reset --hard是一个用于版本回退的git命令。它的作用是将当前分支HEAD指针和工作目录的文件都重置为指定的节点或提交。在引用中提到了git reset命令和git reset --hard命令的区别。git reset命令只会移动HEAD指针,而不会修改工作目录的文件;而git reset --hard命令则会同时移动HEAD指针和重置工作目录的文件到指定的节点或提交。 在引用中提到了git reset --hard命令的使用示例。假设你想要回退到版本二,可以使用git reset --hard 90a8d76命令,其中90a8d76是版本二的节点ID。这样,git会将HEAD指针和工作目录都重置到版本二。 引用中提到了git版本回退的速度非常快,因为Git在内部有一个指向当前版本的HEAD指针。当你使用git reset --hard回退版本时,Git只需将HEAD指针从指向当前版本改为指向目标版本,即可完成版本回退操作。 综上所述,git reset --hard是一个用于快速回退版本的git命令,可以同时移动HEAD指针和重置工作目录的文件到指定的节点或提交。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [git reset --hard详解](https://blog.csdn.net/weixin_45683963/article/details/126776135)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [【Git 教程系列第 13 篇】版本回退操作 — git reset --hard](https://blog.csdn.net/qq_42351033/article/details/99692033)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值