VSCode Git高效操作包含20种实用技巧:快捷键打开源代码管理、一键暂存全部/部分文件、撤销修改与暂存、行级还原、查看代码作者、文件比对、快速分支创建与切换、文件夹级提交、内联提交、签名提交、远程追踪设置、一键推送、冲突内联解决、提交历史文件查看、临时搁置更改、跳过预提交钩子、历史文件检出。

如果您在使用 VSCode 进行代码开发时频繁操作 Git,但尚未充分利用其内置的 Git 图形化功能,则可能遗漏了大量提升协作效率与本地工作流稳定性的实用技巧。以下是针对 VSCode 中 Git 操作的多种高效实践方法:
本文运行环境:MacBook Air M2,macOS Sonoma。
一、快速打开源代码管理视图
VSCode 的源代码管理(Source Control)面板是所有 Git 操作的统一入口,启用后可直观查看暂存区、未暂存更改及分支状态。
1、按下 Command + Shift + G 快捷键直接聚焦到源代码管理视图。
2、若该视图未启用,点击左侧活动栏中的 源代码管理图标(分支图标) 手动展开。
二、一键暂存所有已修改文件
避免逐个勾选文件,通过命令面板批量提交变更前的暂存动作,显著减少鼠标操作。
1、按下 Command + Shift + P 打开命令面板。
2、输入 Git: Stage All 并回车执行。
三、暂存部分代码行或块(Stage Selected Ranges)
当单个文件中仅需提交部分改动时,可精准选择代码片段进行暂存,保留其余修改在工作区。
1、在编辑器中用鼠标拖选目标代码行或按住 Command 多选不连续区域。
2、右键弹出菜单,选择 Stage Selected Ranges。
四、撤销工作区单个文件的全部修改
在未暂存前快速恢复文件至最近一次 commit 状态,防止误改扩散。
1、在源代码管理视图中找到目标文件。
2、将鼠标悬停于文件名右侧,点击出现的 × 按钮。
3、确认弹窗中选择 Discard Changes。
五、撤销暂存区中某个文件的暂存状态
将已加入暂存区但尚未提交的文件移出暂存区,使其回归“已修改但未暂存”状态。
1、在源代码管理视图中切换至 STAGED CHANGES 区域。
2、右键点击目标文件,选择 Unstage。
六、从暂存区恢复某段被暂存的代码
在暂存后发现某段逻辑有误,可单独还原该段而非整个文件,保持其他暂存内容不变。
1、在编辑器中打开已暂存的文件,VSCode 会高亮显示暂存与未暂存差异。
2、将光标置于待还原的代码行,点击行号左侧的 + 图标(Revert Line)。
七、查看某行代码的历史作者与提交信息
快速追溯某行代码由谁在何时以何种原因引入,适用于协同调试与责任定位。
1、将光标置于目标代码行任意位置。
2、按下 Shift + Command + P 打开命令面板。
3、输入并执行 Git: Show Blame for Line。
八、在编辑器内直接比对当前文件与上一版本差异
无需切换到专用比较界面,实时查看本文件自上次 commit 后的所有增删改。
1、右键点击编辑器标签页上的文件名。
2、选择 Compare With Previous Commit。
九、通过命令面板创建新分支并自动切换
跳过手动输入分支名和多次确认流程,实现分支新建与检出一体化。
1、按下 Command + Shift + P 打开命令面板。
2、输入 Git: Create Branch 并回车。
3、在弹出输入框中键入新分支名称,回车即完成创建并切换。
十、快速切换至上一个检出的分支
在 feature 分支与 main 之间高频切换时,避免重复查找分支名。
1、按下 Command + Shift + P 打开命令面板。
2、输入 Git: Checkout Previous Branch 并执行。
十一、在资源管理器中直接右键提交文件夹级变更
对子模块或特定目录进行独立提交,避免污染全局暂存区。
1、在资源管理器(Explorer)中右键点击目标文件夹。
2、选择 Stage Folder 或 Discard Folder Changes。
十二、使用内联操作按钮提交暂存更改
免去打开命令面板或输入提交信息的步骤,在 UI 层直接完成轻量提交。
1、确保至少有一个文件处于 STAGED CHANGES 区域。
2、点击源代码管理视图顶部的 ✓ 提交按钮(位于输入框右侧)。
3、在弹出的输入框中填写提交信息后按 Enter。
十三、为当前提交添加签名(Sign Off)
满足部分开源项目对 Signed-off-by 行的强制要求,确保贡献合规性。
1、在提交信息输入框中,将光标移至末尾。
2、按下 Command + Enter 插入标准签名行 Signed-off-by: Your Name
十四、查看当前分支的远程追踪关系
确认本地分支是否已设置 upstream,避免推送时反复指定远程与分支名。
1、在源代码管理视图顶部,点击当前分支名称右侧的 同步状态图标(↑↓)。
2、若显示 Set Upstream,说明尚未建立追踪;若显示 Push to origin/xxx,表示已配置。
十五、一键推送当前分支并设置上游
首次推送 feature 分支时,自动关联远程同名分支,后续只需快捷键同步。
1、确保已在本地完成提交。
2、按下 Command + Shift + P 打开命令面板。
3、输入并执行 Git: Push with Force (if needed) 或更安全的 Git: Push to,选择 origin 及对应分支。
十六、解决合并冲突时使用内联接受控件
在编辑器中直接处理冲突标记,无需外部工具即可完成三方合并决策。
1、打开含冲突标记(>>>>>>)的文件。
2、将光标置于冲突块内,VSCode 会在行号旁显示 Accept Current Change / Accept Incoming Change / Accept Both Changes 按钮。
十七、在提交历史中快速定位某次变更的文件列表
跳过逐层展开,直接查看某次 commit 影响了哪些文件及其变更类型(新增/修改/删除)。
1、在源代码管理视图中点击 ... 菜单 → Show History。
2、在提交日志中点击目标 commit,右侧将展开 Files Changed 面板。
十八、临时保存未提交更改(Shelf)
当需紧急切换分支但又不想提交半成品时,将当前更改存为临时快照,稍后恢复。
1、在源代码管理视图中点击 ... 菜单 → Create Shelf。
2、输入描述性名称后确认,所有暂存与未暂存更改将被暂存。
3、切换分支后,通过 ... 菜单 → Restore Shelf 恢复。
十九、禁用某次提交的预提交钩子(Skip Pre-commit Hooks)
绕过 ESLint、Prettier 等 husky 触发的校验,适用于调试性提交或 CI 临时跳过。
1、在提交信息输入框中,于第一行开头添加 [skip ci] 或 --no-verify(取决于钩子配置)。
2、提交时 VSCode 将透传该标志至底层 git 命令。
二十、从任意历史提交中检出单个文件
恢复某个旧版本中的特定文件,而不影响当前分支整体状态或工作区其他文件。
1、在源代码管理视图中点击 ... 菜单 → Show History。
2、找到目标 commit,右键点击它,选择 Checkout Commit...。
3、在弹出的文件选择界面中,勾选所需文件,点击 Checkout。










