如何撤消我的最后一次提交? git reset --soft HEAD^ 和 git reset --soft HEAD~1 都在工作吗?

How can undo my last commit? git reset --soft HEAD^ nor git reset --soft HEAD~1 are working?

这个问题似乎被问了很多次,但我看到的解决方案都没有对我有用。

我在 windows 命令提示符下使用 git,但我也尝试了 git bash 它们都产生了几乎完全相同的结果。

git reset --soft HEAD^
git reset --soft "HEAD^"
git reset --soft HEAD~1
git reset --soft "HEAD~1"

对于这些命令中的每一个,我总是得到:

fatal: ambiguous argument ''HEAD'': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

除了“git reset --soft HEAD^”,但这是一个类似的反馈

More? 1
fatal: ambiguous argument 'HEAD1': unknown revision or path not in the working tree.
Use '--' to separate paths from revisions, like this:
'git <command> [<revision>...] -- [<file>...]'

git revert HEAD 将简单地记录一个新的提交来撤消你上次的提交。

您也可以继续检查您之前的提交并将分支设置为该提交而不是最后一个(记住分支只是一个指针)。这实质上使您的最后一次提交消失了。

假设您在 main

git checkout HEAD~1
git checkout -B main

现在你的提交消失了:)

您的存储库处于初始提交状态。此提交没有祖先。因此,任何访问 HEAD 的祖先的命令都会失败。

该案件在 this question 中处理。我建议应用该问题的已接受答案,即完全删除当前分支(因为它包含您要删除的提交作为唯一提交):

git update-ref -d HEAD

您的文件完好无损,您可以重新提交。如果您已经推送了之前的提交,请考虑 this answer

中的建议