美文网首页HJCP要求甚解
git reset and git revert

git reset and git revert

作者: 易景平 | 来源:发表于2018-05-02 00:05 被阅读0次

    git reset --hard xxx /git reset --soft xxx/[git revert xxx 这三个命令有什么区别?

    git操作的三个区域。

    • Working copy代表正在工作的那个区域

    • Index暂存区域,也叫staging area,也就是add过的文件

    • 仓库区域,commit过的文件

    Head指当前分支顶端,即最近的一个commit。

    如果commit的集合是-A-B-C(head master),执行git reset B结果为-A-B(head master)-C。Git reset命令可以把当前的branch重置到另一个commit上。

    三个命令都有返回重置的意思,但有区别

    • Git reset --soft xxx head会被重置,但是index区域和working copy都不会变化,

    • Git reset--hard xxx head会被重置,同时index和working copy也会变化以匹配新的head。这意味着数据会改动。

    • Git revert xxx将一次commit反向改回去并提交,版本会递增,不会影响之前的内容。

    如下图,创建一个文件monday.txt并更改两次,得到3个commits。分别为version 1.0--version2.0--version3.0(head)

    image

    执行命令git reset --soft xxx返回到version2.0,并打开文件monday.txt,可以看到文件内容并没有改变,还是version3.0的内容

    image 4.png

    回到version3.0后执行git reset --hard xxx返回到version2.0并打开,内容变成的version2.0的内容

    image

    执行Git revert xxx撤销刚才的操作并更改内容重新提交

    image image

    相关文章

      网友评论

        本文标题:git reset and git revert

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