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

这个问题在这里已经有了答案:

  • 如何撤消Git中的最新提交? 69个答案

  • 如果您不完全确定“uncommit”的含义,并且不知道是否要使用git reset ,请参阅“恢复到之前的git commit”。

    如果你想更好地理解git reset ,请参阅“你能解释一下”git reset“以简单的英文表达吗?”。


    如果你知道你想使用git reset ,它仍然取决于你的意思是“uncommit”。 如果你想要做的只是撤消提交的行为,而保留其他所有内容,请使用:

    git reset --soft HEAD^
    

    如果你想撤销提交的行为和你所做的所有事情,但是离开工作树(你的文件完好无损):

    git reset HEAD^
    

    如果你真的想完全撤消它, 扔掉所有未提交的更改,将所有内容重置为前一次提交 (如原始问题所述):

    git reset --hard HEAD^
    

    原来的问题还问这是HEAD^不是HEADHEAD引用当前提交 - 通常是当前签出分支的提示。 ^是可以附加到任何提交说明符的符号,并且意味着“提交之前”。 因此, HEAD^是当前的提交之前的提交,就像master^是主分支提示之前的提交一样。

    下面是git-rev-parse文档中描述所有指定提交方式的部分( ^只是许多中的基本代码)。


    要保留您想要撤消的提交的更改

    git reset --soft HEAD^
    

    摧毁您想要撤消的提交中的更改

    git reset --hard HEAD^
    

    你也可以说

    git reset --soft HEAD~2
    

    返回2次提交。

    编辑:正如charsi提到的,​​如果你在Windows上,你将需要把HEAD或提交哈希引号。

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

    git reset --soft HEAD^将保留修改后的工作树。

    git reset --hard HEAD^ 抛弃您所做的更改!

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

    上一篇: How to uncommit my last commit in Git

    下一篇: How can I reconcile detached HEAD with master/origin?