You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Git中撤销提交(Undo Commit)与还原提交(Revert Commit)对比及VS Code操作指南

Git撤销提交(Undo Commit)与还原提交(Revert Commit)详解

1. 什么时候用撤销提交,什么时候用还原提交?

  • 撤销提交(Undo Commit):仅适用于本地未推送到远程仓库的提交。比如刚提交完就发现代码写错、提交信息填错,或是漏加了文件,想把这次提交“收回”,回到提交前的状态且不想留下错误提交的痕迹。这种操作会修改本地Git提交历史,绝对不能用在已推送至远程的提交上,否则会和协作伙伴的版本历史冲突。
  • 还原提交(Revert Commit):专门用于已推送到远程仓库的提交。如果错误提交已经被其他团队成员拉取,此时不能修改历史(会导致版本混乱),还原操作会生成一个全新的提交,内容与要还原的提交完全相反,相当于“抵消”之前的错误修改,既修正问题,又保留完整的提交历史,不会影响团队协作。

2. 对应Git命令

撤销提交(Undo Commit)

  • 撤销最后一次提交,同时保留修改内容(回到暂存区):
    git reset --soft HEAD~1
  • 撤销最后一次提交,且彻底丢弃所有修改(谨慎使用,数据无法恢复):
    git reset --hard HEAD~1

提示:HEAD~1指向倒数第一个提交,若要撤销倒数第n个提交,改为HEAD~n即可。

还原提交(Revert Commit)

  • 还原指定哈希值的提交:
    git revert <commit-hash>
  • 还原最后一次提交:
    git revert HEAD
    执行命令后Git会自动打开编辑器让你填写还原提交的信息,保存退出后会生成新的抵消提交,随后用git push推送到远程即可。

3. VS Code可视化界面操作

撤销提交(Undo Commit)

  1. 打开VS Code的源代码管理面板(快捷键:Windows/Linux按Ctrl+Shift+G,Mac按Cmd+Shift+G)
  2. 在面板下方的“提交记录”区域,找到要撤销的本地提交(未推送的提交顶部无远程标记)
  3. 右键点击该提交,选择Undo Commit选项
  4. 完成后,该提交的修改会回到暂存区(若之前是暂存后提交)或工作区,可重新修改后再提交

还原提交(Revert Commit)

  1. 打开源代码管理面板的“提交记录”区域,找到要还原的提交(本地、已推送的提交均可)
  2. 右键点击该提交,选择Revert Commit选项
  3. VS Code会自动生成一个新提交,内容为抵消原提交的修改,可在提交输入框确认或修改提交信息
  4. 点击提交按钮后,将这个新提交推送到远程即可

内容的提问来源于stack exchange,提问作者Muhammad Faraz Ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 13:26:16