哎呀...我错误地提交了一个相当复杂的更改(包括子目录和文件重命名),并不真正知道自己在做什么(或Git会做什么)。
现在我想撤销所有内容,使其满足以下条件:
- 提交完全被撤销(就像从未完成一样,可能也将其从历史记录中删除)
- 将当前工作目录(其中包含
.git
)恢复到某个分支(最后一个分支即可)。
我找到了关于 git reset --soft 和 git reset --hard 的参考资料,但我已经向自己证明,如果过早地使用命令而不完全理解它,我可以造成真正的损害。 :)
我找到了 git reset man page,但我仍然感到困惑:
HEAD
是什么?HEAD
和* master
有什么区别?- 在我的情况下(见上文),我需要使用
--soft
、--hard
还是其他(还有 3 种选项)? - 在执行
git reset
后,我需要运行另一个命令来“完成”撤销吗?
更新:阅读下面的答案后:
- 我是否正确理解,在我的情况下,我只需要发出一个命令
git reset --hard HEAD^
? - 如何验证撤销是否已正确执行?