VS Code中撤销Git提交需按场景选择:Revert Commit新增抵消提交;--soft reset回退HEAD但保留暂存区;--mixed reset清空暂存区保留工作区修改;--hard reset彻底删除提交及更改,慎用。

在 VS Code 中撤销 Git 提交,本质是使用 Git 命令操作本地仓库,VS Code 只是提供图形化界面辅助。关键看你想“撤销”的程度:是撤回未推送的最近一次提交(保留修改)、还是彻底删除提交记录、或是回退到某个历史状态。下面分几种常见场景说明。
撤回最后一次提交,但保留工作区修改
适合刚提交完发现漏改文件、提交信息写错等情况,想把这次提交取消,但代码改动还留着继续编辑。
- 在 VS Code 左侧源代码管理(Source Control)视图中,点击右上角 ⋯(更多操作)→ 选择 Revert Commit
- 或者打开命令面板(Ctrl+Shift+P / Cmd+Shift+P),输入并选择 Git: Revert Commit
- 选中要撤回的提交(通常是最新的一条),确认后 Git 会创建一个反向的新提交,抵消前一次更改
⚠️ 注意:这不会删除原提交,而是新增一条“抵消”提交,适合已推送到远程的情况(协作安全)。
软重置(Soft Reset):取消提交,保留暂存区和工作区
相当于把 HEAD 指针移回上一个提交,但所有改动仍在暂存区,可直接重新提交或修改后再提交。
- 打开 VS Code 集成终端(Ctrl+`),运行:
git reset --soft HEAD~1 - 然后在源代码管理视图里,你会看到所有之前已提交的变更又回到“STAGED CHANGES”区域
- 可编辑提交信息、增删文件,再点 ✅ 提交
✅ 这是最常用的“后悔药”,尤其适合提交后立刻想调整内容。
混合重置(Mixed Reset):取消提交,保留工作区,清空暂存区
HEAD 和暂存区都回退,但修改仍保留在工作目录中(文件变成“CHANGED”状态),适合想从头重新 add & commit。
- 终端执行:
git reset HEAD~1(--mixed 是默认模式,可省略) - 之后所有变更会出现在“CHANGES”列表下,需手动 Stage 才能再次提交
硬重置(Hard Reset):彻底删除提交及所有相关修改
⚠️ 危险操作!会永久丢失该提交及其之后的所有本地更改(包括未暂存的)。仅限确定不再需要这些改动时使用。
- 终端执行:
git reset --hard HEAD~1 - VS Code 源代码管理视图将清空所有变更,工作区恢复至上一次提交的状态
- 如果已推送到远程,还需强制推送(git push --force-with-lease),但请务必确认团队无其他人基于该提交继续开发
基本上就这些。日常开发中,优先用 Revert Commit 或 --soft reset,安全又清晰。硬重置慎用,操作前建议先 git status 和 git log --oneline 确认当前状态。










