6月2日 00:06

VSCode 怎么用 Git?内置 Git 功能和常见操作图文指南

VSCode 内置了 Git 支持,日常的 commit、diff、branch、merge、resolve conflict 都不用离开编辑器。不装任何扩展就能用,大部分情况下不需要命令行。

基本操作

查看变更

左侧栏的 Source Control 图标(分支形状)显示当前仓库状态。点击后能看到所有已修改文件,点击文件名查看 diff(左右对照显示新增/删除的行)。

暂存和提交

  • 点击文件旁的 + 号暂存(相当于 git add)
  • 点击 - 号取消暂存(相当于 git reset HEAD)
  • 在输入框写 commit message,按 Ctrl+Enter 提交

比命令行快的地方:可以部分暂存——在 diff 视图里选中几行右键 "Stage Selected Ranges",只提交某几行改动而不是整个文件。

撤销修改

文件旁的回退箭头图标撤销所有未暂存的修改(git checkout)。如果已经暂存了,先取消暂存再撤销。

分支管理

左下角状态栏显示当前分支名。点击分支名弹出分支列表:

  • 切换到已有分支
  • 创建新分支(从当前分支或指定分支创建)
  • 删除分支

合并分支:Ctrl+Shift+P 输入 Git: Merge Branch,选择要合并进来的分支。如果有冲突,VSCode 会标记冲突文件。

解决冲突

冲突文件会在编辑器里显示三段内容:

  • Current Change(当前分支的版本)
  • Incoming Change(要合并进来的版本)
  • 上方有四个按钮:Accept Current / Accept Incoming / Accept Both / Compare

点击按钮选择保留哪个版本,或者手动编辑合并后的内容。解决所有冲突后保存文件,暂存并提交。

VSCode 的冲突解决界面比 git mergetool 直观很多——两个版本左右对照,选中哪边一目了然。

查看历史

内置功能比较有限:只能看文件的行级别 blame(鼠标悬停在某行显示最后修改的 commit)。要看完整历史,装 GitLens 扩展——显示每一行的修改者、时间、commit 信息,还能看文件的历史版本和 diff。

.gitignore 支持

创建 .gitignore 文件后,VSCode 自动忽略匹配的文件。已跟踪的文件如果加入 .gitignore 不会自动取消跟踪,需要先 git rm --cached

忽略文件但不想提交 .gitignore:用全局 gitignore(git config --global core.excludesFile ~/.gitignore_global)。

常见问题

Source Control 面板不显示:打开的文件夹不是 Git 仓库。Ctrl+Shift+P 输入 Git: Initialize Repository 初始化,或者 Git: Clone 克隆远程仓库。

文件修改后没有变化标记:可能是文件编码问题或 .gitignore 规则意外匹配。检查 git status 在终端里是否正常。

提交时 husky/pre-commit hook 报错:VSCode 的 Git 集成调用的是系统 git,hook 正常运行。但如果 hook 依赖环境变量(如 PATH 中的 node),VSCode 可能找不到。从终端启动 VSCode(code .)可以继承终端的环境变量。

标签:VSCode