• Babel 插件通关秘籍
  • Git 原理详解及实用指南
  • Nest 通关秘籍
  • React 通关秘籍
  • TypeScript 全面进阶指南
  • TypeScript 类型体操通关秘籍
  • 现代CSS
  • Babel 插件通关秘籍
  • Git 原理详解及实用指南
  • Nest 通关秘籍
  • React 通关秘籍
  • TypeScript 全面进阶指南
  • TypeScript 类型体操通关秘籍
  • 现代CSS
  • Git 原理详解及实用指南

    • 1.什么是版本控制系统(VCS)
    • 2.什么是分布式版本控制系统(DVCS)
    • 3.上手 1:新公司用 Git 管理代码,怎么快速上手?
    • 4.上手 2:团队工作的基本工作模型
    • 5.进阶 1:HEAD、master 与 branch
    • 6.进阶 2:push 的本质
    • 7.进阶 3:merge:合并 commits
    • 8.进阶 4:Feature Branching:最流行的工作流
    • 9.进阶 5:关于 add
    • 10.进阶 6:看看我都改了什么
    • 11.高级 1:不喜欢 merge 的分叉?用 rebase 吧
    • 12.高级 2:刚刚提交的代码,发现写错了怎么办?
    • 13.高级 3:写错的不是最新的提交,而是倒数第二个?
    • 14.高级 4:比错还错,想直接丢弃刚写的提交?
    • 15.高级 5:想丢弃的也不是最新的提交?
    • 16.高级 6:代码已经 push 上去了才发现写错?
    • 17.高级 7:reset 的本质——不止可以撤销提交
    • 18.高级 8:checkout 的本质
    • 19.高级 9:紧急情况:「立即给我打个包,现在马上!」
    • 20.高级 10:branch 删过了才想起来有用?
    • 21.额外说点:.gitignore——排除不想被管理的文件和目录
    • 22.总结

高级 4:比错还错,想直接丢弃刚写的提交?

有的时候,刚写完的 commit 写得实在太烂,连自己的都看不下去,与其修改它还不如丢掉重写。这种情况,就可以用 reset 来丢弃最新的提交。

reset --hard 丢弃最新的提交

比如你刚写了一个 commit:

写完回头看了看,你觉得「不行这得重新写」。那么你可以用 reset --hard 来撤销这条 commit。

git reset --hard HEAD^

HEAD 表示 HEAD^ 往回数一个位置的 commit ,上节刚说过,记得吧?

HEAD^ 表示你要恢复到哪个 commit。因为你要撤销最新的一个 commit,所以你需要恢复到它的父 commit ,也就是 HEAD^。那么在这行之后,你的最新一条就被撤销了:

不过,就像图上显示的,你被撤销的那条提交并没有消失,只是你不再用到它了。如果你在撤销它之前记下了它的 SHA-1 码,那么你还可以通过 SHA-1 来找到他它。

小结

这一节的内容是撤销最新的提交,方式是通过 reset --hard:

git reset --hard 目标commit
上次更新: 6/21/25, 9:42 AM
贡献者: YNight
Prev
13.高级 3:写错的不是最新的提交,而是倒数第二个?
Next
15.高级 5:想丢弃的也不是最新的提交?