如何在Git中撤消我的最后一个提交?
如何在Git中撤消我的最后一个提交?
这个问题已经有答案在这里了:
我如何在Git中撤销我的最后一次提交?
是
git reset --hard HEAD
还是
git reset --hard HEAD^
?
admin 更改状态以发布 2023年5月20日
如果您不确定自己的“取消提交(uncommit)”意味着什么,也不知道是否想要使用git reset
,请参见“返回到先前的Git提交”。
如果您想更好地理解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文档的一部分,描述了指定提交的所有方式(^
只是其中的基本方式之一)。