美文网首页
关于 git reset --hard xxx , git re

关于 git reset --hard xxx , git re

作者: liangtianzhan | 来源:发表于2019-01-17 23:06 被阅读0次

    背景知识

    HEAD

    这是当前分支版本顶端的别名,也就是在当前分支你最近的一个提交

    index

    index也被称为staging area,是指一整套即将被下一个提交的文件集合。他也是将成为HEAD的父亲的那个commit

    Working Copy

    working copy代表你正在工作的那个文件集

    使用git的每次提交,Git都会自动把它们串成一条时间线,这条时间线就是一个分支。如果没有新建分支,那么只有一条时间线,即只有一个分支,在Git里,这个分支叫主分支,即master分支。有一个HEAD指针指向当前分支(只有一个分支的情况下会指向master,而master是指向最新提交)。

    git revert

    撤销某次操作(commit),并把这次撤销当做一次新的提交,版本号递增,就是用一次新的提交(commit)来回滚之前的commit。


    image.png

    git reset

    git reset 常用于代码回滚,是直接删除指定的 commit, 但是文件和修改会移动到 workspace 工作区.

    git reset --soft xxx:

    soft命令会让版本回到某次commit后的状态,但并不改动工作目录中的文件。执行git reset --soft后
    可以看出版本退回了q1,但之前提交的文件变成了有新改动的状态。


    image.png

    git reset --hard xxx

    hard HEAD~1 (或是版本号)意为将版本库回退1个版本,但是不仅仅是将本地版本库的头指针全部重置到指定版本,也会重置暂存区,并且会将工作区代码也回退到这个版本


    image.png

    二者的区别:

    git reset 是把HEAD向后移动了一下
    git revert 是HEAD继续前进,只是新的 commit 的内容和要 revert 的内容正好相反,能够抵消要被revert的内容.

    相关文章

      网友评论

          本文标题:关于 git reset --hard xxx , git re

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