美文网首页
git reset --hard xxx、git reset -

git reset --hard xxx、git reset -

作者: 柳岸花茗 | 来源:发表于2018-06-15 11:25 被阅读0次

    首先我们先来了解一下这3个命令都有什么作用

    git reset --hard xxx:
    重置当前分支的HEAD为指定commit,同时重置暂存区和工作区,与指定commit一致

    git reset --soft xxx:
    重置当前的HEAD为指定commit,但保持暂存区和工作区不变

    git revert xxx:
    新建一个commit,用来撤销指定commit,后者的所有变化都将被前者抵消,并且应用到当前分支

    刚接触可能不太了解HEAD是什么,其实这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交。HEAD 并不是只能指向分支的最顶端(时间节点距今最近的那个),实际上它可以指向任何一个节点。


    git工作流程.png

    使用git reflog命令来查看所有的版本信息
    我们可以看到在是用来git reset --hard 3bc9551命令后,再次查看版本信息发现HEAD指向了3bc9551这个节点。但是要知道,暂存区和工作区同时也被重置了,所以可能造成数据的丢失。


    1.png
    同样的,在使用git reset --soft 3bc9551命令后,查看版本信息后发现HEAD同样指向了3bc9551这个节点。但是soft命令并没有改变暂存区和工作区,所以用commit进行提交的还是原来的暂存区和工作区的文件。
    2.png

    而git revert xxx命令则会对某次操作进行撤销,但是这次操作之前或者之后的commit都将被保留,并把这次撤销当做一次新的提交。

    相关文章

      网友评论

          本文标题:git reset --hard xxx、git reset -

          本文链接:https://www.haomeiwen.com/subject/jhepeftx.html