Git reset 使用

2022-02-17  本文已影响0人  Domon_Lee

日常的工作当中,由于需要和别人协同工作,代码方面当然就直接使用Git的方式来管理了。在日常使用当中有很多命令比较常用

git rebase 我在这一篇文章已经做了一点讲解,应该使用起来都比较方便。值得一提的是,可以使用git rebase -abort来撤销一次rebase。

今天来说一下git reset。它的一句话概括

git-reset - Reset current HEAD to the specified state

意思就是可以让HEAD这个指针指向其他的地方。例如我们有一次commit不是不是很满意,需要回到上一次的Commit里面。那么这个时候就需要通过reset,把HEAD指针指向上一次的commit的点。

它有三种模式,soft,mixed,hard,具体的使用方法下面这张图,展示的很全面了。

image
这三个模式理解了,对于使用这个命令很有帮助。在理解这三个模式之前,需要略微知道一点Git的基本流程。正如上图,Git会有三个区域: image

结合这两张图,基本就非常明确的知道这三个参数的作用范围了。假设我们对于一个txt文件,每次顺序添加一个数字。有4次提交,1 -> 2 -> 3 ->4,则txt中就会有4个数字1234,使用命令git reset [param] HEAD~2

Git在默认执行reset命令的时候会选择mixed,如果不小心使用hard参数,丢失了当前的commit也不要慌。在Git中所有的历史提交都会有记录下来,输入git reflog,找到所有的历史纪录。然后通过HEAD@{N}来恢复到某一次提交。

git reset --hard HEAD@{N}

ref :

  1. git reset soft,hard,mixed之区别深解
  2. Reset - mixed, hard and soft
  3. SOF
上一篇 下一篇

猜你喜欢

热点阅读