本章你将彻底搞懂:git reset –soft、–mixed、–hard 三种模式的区别与使用场景。git revert 与 git reset 的本质区别(安全逆向 vs 改写历史)。新版 Git 中 git restore 如何替代 git checkout — <file>。 配套资源:一个“回滚决策树”思维导图(Mermaid 可复制)、git undo 万能别名、git reset 事故恢复脚本。 真实踩坑:我曾用 git reset –hard 把两天的工作全部丢失,最后靠 git reflog 勉强找回;还有一次用 git revert 撤销 merge commit,结果重做后代码乱掉,加班到凌晨。
4.1 凌晨两点的 git reset –hard 噩梦
2018 年我在某电商公司做大促活动。晚上 11 点,运营说页面上的价格显示错了,需要紧急修复。我本地调试了很久,改了好几个文件,但一直没提交。突然想到需要切换到另一个分支验证,于是执行了:



