对不起——我无法理解这个问题的现有答案,也无法理解大多数问题,因为我不清楚所问的问题和答案所完成的任务。我做到了:
- git克隆
- 使用我最喜欢的编辑器编辑的文件
- git添加文件
- git提交文件
我想在2之后返回到状态。以及在3。
如果您的答案包含任何git命令的参数,请不要忘记解释这些参数(例如HEAD~32(。
我的问题似乎是一个"重复问题"。在搜索"undo-git-commit"时,我没有看到这个现有的问题。因此,这个问题也可能不会显示给其他搜索我的搜索短语的人(当我需要再次查找答案时,也不会显示给我(。此外,现有问题中的答案并没有解释HEAD^是什么(这里的当前答案也没有(。
已经建议的命令就是您正在寻找的命令:
git reset HEAD~1
您的git项目本质上是一堆更改。HEAD是该堆栈的顶部"单元格"。当您提交更改时,您会在堆栈的顶部添加一个新单元格。前面提到的命令在gitadd命令之前将这些文件卸载回修改过的文件。或者,换句话说,删除您堆叠的最后一个单元格。此外,数字-~1-决定了要删除的"单元格"或提交的数量。如果有什么不清楚的地方,我很乐意回答。此外,这里还有一本关于git重置的有用读物。
只返回到上次提交前的状态,但将更改保留在工作副本中:
git reset @~
@~
是HEAD~1
的简写(即上一次提交,数字1
表示"返回1步"(。Git将切换到该提交,并且更改将在git status
中显示为"未提交"。