美文网首页
Git Reset命令

Git Reset命令

作者: None_Ling | 来源:发表于2016-12-15 23:07 被阅读173次

    Git Reset:将处于Commit区的提交重置。

    Git分为三个区:
    工作区(Working Directory):没有修改、修改后未使用git add的文件
    暂存区(Staged):新增/修改后的文件调用git add后都会被添加到暂存区
    提交区(Commit):所有添加到暂存区里的文件通过git commit之后会被统一添加到提交区,作为一次提交

    HEAD指针指向的是最新的提交节点。而HEAD^代表的是前一次的提交节点。而HEAD~2代表的是前两次的提交节点。

    git reset --soft HEAD^:将最近一次提交节点的提交记录回退到暂存区
    git reset --mixed HEAD^:将最近一次提交节点的提交记录回退到工作区
    git reset --hard HEAD^:将最近一次提交节点的提交记录全部清除

    EP:
    在Master分支中,首先通过git add test.txt将test.txt文件添加到暂存区,再通过git commit -m "add file test.txt "将暂存区的内容作为一次提交记录添加到提交区,最后如果没问题的话就可以通过git push origin master将这次提交push到远端仓库。

    使用
    如果此时发现提交记录的comment写错了,如将git commit -m "add file test.txt"写成了git commit -m "ad file test.txt",那么就可以使用:
    git reset --soft HEAD^将本次提交回退到暂存区,再重新把comment补全,进行一次提交。

    如果此时发现提交记录里有一个文件多提交了,或者有一个文件漏添加到暂存区而没有在此次提交内,则可以通过git reset --mixed HEAD^将本次提交都回退到没有添加到暂存区之前,然后再重新add需要提交的文件后,再重新add

    如果此时发现修复一个BUG完全错了,希望取消这次提交,并且把代码回退到没有改动的话,则需要使用git reset --hard HEAD^,来将这次提交全部回退。

    暂存区回退操作

    如果Test.txt文件已经被git add添加到了暂存区中,想要将该文件回退到工作区(Working Directory)的话,则使用git reset HEAD Test.txt,则将修改后的文件回退到了未被add的状态

    工作区回退操作

    如果Test.txt文件已经被改得乱七八糟了,想要把这个文件回退到最近一次更新的代码的话,则需要使用git checkout -- Test.txt将该文件回到与HEAD的状态

    所有文件回到HEAD指针位置

    如果工程里面改的乱七八糟了,不仅仅只有一个Test.txt文件被修改,需要将工作区里面的所有文件恢复到HEAD指针的状态的话,则使用git reset --hard HEAD即可

    相关文章

      网友评论

          本文标题:Git Reset命令

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