美文网首页
git reset和git revert

git reset和git revert

作者: zooeydotmango | 来源:发表于2019-08-06 19:43 被阅读0次

    git reset用于将当前HEAD(版本库中该分支上的最新版本)复位到指定状态,可用于撤销之前的一些操作。

    1、git reset --soft

    我们先修改并commit一次,message为1,然后再修改一次,commit且message为2,git log一下得到以下画面

    两次commit

    复制message为1的哈希码,执行git reset --soft 5034b2656e6797a7f3dcfd137d487062a8dff699,并且git log之后

    message为2的提交没有了

    commit2已经没有了,但是commit2修改的代码还在,只是回到了add过但是未提交的状态

    2、git reset --mix默认

    重复刚刚的两次commit,这次执行git reset --mix 第一次哈希码,并git status -sb

    红色M
    依旧回到了commi2没有的状态,但是代码还在,只是没有add的状态

    3、git reset --hard

    依旧是这两次commit,执行git reset --hard 第一次哈希码,并git status -sb

    没有修改的文件
    commit2的代码已经没有了,文件完全回到commit1的状态

    4、git revert

    同样是两次commit,这次使用git revert HEAD,并且git status -sb后显示已经没有更改过的文件,commit2的代码也没有了,但是git log可以查看到revert的commit

    没有改写历史
    因此git revert可以用在公共分支上,git reset应该用在私有分支上。也可以把git revert当作撤销已经提交的更改,git reset用来撤销没有提交的更改。

    相关文章

      网友评论

          本文标题:git reset和git revert

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