How to uncommit my last commit in Git

This question already has an answer here:

  • How to undo the most recent commits in Git? 69 answers

  • If you aren't totally sure what you mean by "uncommit" and don't know if you want to use git reset , please see "Revert to a previous Git commit".

    If you're trying to understand git reset better, please see "Can you explain what "git reset" does in plain English?".


    If you know you want to use git reset , it still depends what you mean by "uncommit". If all you want to do is undo the act of committing, leaving everything else intact, use:

    git reset --soft HEAD^
    

    If you want to undo the act of committing and everything you'd staged, but leave the work tree (your files intact):

    git reset HEAD^
    

    And if you actually want to completely undo it, throwing away all uncommitted changes, resetting everything to the previous commit (as the original question asked):

    git reset --hard HEAD^
    

    The original question also asked it's HEAD^ not HEAD . HEAD refers to the current commit - generally, the tip of the currently checked-out branch. The ^ is a notation which can be attached to any commit specifier, and means "the commit before". So, HEAD^ is the commit before the current one, just as master^ is the commit before the tip of the master branch.

    Here's the portion of the git-rev-parse documentation describing all of the ways to specify commits ( ^ is just a basic one among many).


    To keep the changes from the commit you want to undo

    git reset --soft HEAD^
    

    To destroy the changes from the commit you want to undo

    git reset --hard HEAD^
    

    You can also say

    git reset --soft HEAD~2
    

    to go back 2 commits.

    Edit: As charsi mentioned, if you are on Windows you will need to put HEAD or commit hash in quotes.

    git reset --soft "HEAD^"
    git reset --soft "asdf"
    

    git reset --soft HEAD^ Will keep the modified changes in your working tree.

    git reset --hard HEAD^ WILL THROW AWAY THE CHANGES YOU MADE !!!

    链接地址: http://www.djcxy.com/p/560.html

    上一篇: 如何撤消git中的最后一个提交

    下一篇: 如何取消提交我在Git中的最后一次提交