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

它是

git reset --hard HEAD

or

git reset --hard HEAD^

?


当前回答

如果您正在使用ZSH并看到错误,请注意

zsh: no matches found: HEAD^

您需要转义^

git reset --soft HEAD\^

其他回答

如果您提交了错误的分支

在错误的树枝上:

Git log -2给出了2次最后提交的哈希值,比如$prev和$last Git checkout $prev checkout正确提交 Git checkout -b new-feature-branch为该特性创建一个新分支 Git选择$last补丁与您的更改分支

然后,您可以按照上面建议的方法之一从第一个分支中删除提交。

如果你还没有推送你的更改,使用git reset——soft[一次提交哈希]回滚到特定的提交。——soft告诉git保持更改被回滚(即,将文件标记为已修改)。——hard告诉git删除正在回滚的更改。

小心点。

但是您可以使用rebase命令

git rebase -i HEAD~2

将打开一个vi,你所要做的就是删除提交的行。也可以阅读在适当的版本@ vi中显示的说明。在这种模式下可以执行一些事情。

如果您正在使用ZSH并看到错误,请注意

zsh: no matches found: HEAD^

您需要转义^

git reset --soft HEAD\^

以保留要撤消的提交中的更改

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"