可使用四种方法撤销本地 Git 提交:一、命令面板执行“Git: Undo Last Commit”;二、SCM 视图点击提交旁“⋯”选撤销;三、终端运行 git reset --soft/--mixed/--hard;四、GitLens 扩展右键提交选重置模式。

如果您在使用 VSCode 进行 Git 操作时,误提交了代码且尚未推送到远程仓库,则可以使用“Git: 撤销上次提交”功能来安全地回退本地 HEAD 并保留工作区更改。以下是实现该操作的多种方法:
本文运行环境:MacBook Air,macOS Sequoia。
一、通过命令面板执行撤销操作
此方法利用 VSCode 内置的 Git 命令面板调用标准 Git 功能,适用于所有已初始化 Git 仓库的工作区,且不修改暂存区内容。
1、按下 Cmd + Shift + P(macOS)或 Ctrl + Shift + P(Windows/Linux)打开命令面板。
2、在输入框中键入 Git: Undo Last Commit,从下拉列表中选择该项。
3、VSCode 将执行 git reset --soft HEAD~1,撤回最近一次提交,同时保留暂存区和工作区的全部变更。
二、通过源代码管理视图快捷按钮操作
此方式依赖于 VSCode 源代码管理侧边栏的图形化交互,适合习惯界面操作的用户,无需记忆命令。
1、点击左侧活动栏中的 源代码管理图标(分支图标),打开 SCM 视图。
2、在提交历史区域顶部,找到最近一次提交右侧的 三个点菜单(⋯)。
3、点击该菜单,选择 Undo Last Commit 选项。
4、确认操作后,提交记录将被移除,原提交内容自动回到暂存区。
三、通过终端手动执行 Git 命令
此方法提供完全控制权,可依据不同需求选择软重置、混合重置或硬重置,适用于需精确控制暂存区与工作区状态的场景。
1、在 VSCode 中打开集成终端(Cmd + `)。
2、确保当前目录为 Git 仓库根路径,执行 git status 确认无未提交变更冲突。
3、根据目标选择对应命令:
若需保留暂存区与工作区:输入 git reset --soft HEAD~1;
若需保留工作区但清空暂存区:输入 git reset --mixed HEAD~1(默认行为);
若需彻底丢弃上次提交全部变更:输入 git reset --hard HEAD~1。
四、通过右键提交历史条目操作
此方法直接作用于提交历史列表中的具体条目,支持对任意历史提交进行回退(不仅限于最后一次),需配合 GitLens 扩展增强功能。
1、确保已安装并启用 GitLens 扩展。
2、在源代码管理视图中展开 COMMITS 面板,定位到目标提交。
3、对该提交条目右键单击,选择 Reset Current Branch to This Commit…。
4、在弹出的子菜单中,选择 Soft、Mixed 或 Hard 重置模式。










