如何取消提交我在Git中的最后一次提交
这个问题在这里已经有了答案:
如果您不完全确定“uncommit”的含义,并且不知道是否要使用git reset
,请参阅“恢复到之前的git commit”。
如果你想更好地理解git reset
,请参阅“你能解释一下”git reset“以简单的英文表达吗?”。
如果你知道你想使用git reset
,它仍然取决于你的意思是“uncommit”。 如果你想要做的只是撤消提交的行为,而保留其他所有内容,请使用:
git reset --soft HEAD^
如果你想撤销提交的行为和你所做的所有事情,但是离开工作树(你的文件完好无损):
git reset HEAD^
如果你真的想完全撤消它, 扔掉所有未提交的更改,将所有内容重置为前一次提交 (如原始问题所述):
git reset --hard HEAD^
原来的问题还问这是HEAD^
不是HEAD
。 HEAD
引用当前提交 - 通常是当前签出分支的提示。 ^
是可以附加到任何提交说明符的符号,并且意味着“提交之前”。 因此, 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^
抛弃您所做的更改!