如何使用vscode的Git集成进行版本控制?【教程】
发布时间 - 2026-01-22 00:00:00 点击率:次VS Code Git集成需正确打开含.git的根目录,新文件需右键Stage,提交前确认STAGED区域,漏提交可用Amend,切换分支前可Discard或Stash更改,远程分支需手动Fetch。
VS Code 的 Git 集成开箱即用,但默认配置下容易误操作(比如未暂存就提交、忽略 .gitignore、分支切换丢失修改),关键不是“能不能用”,而是“怎么避免踩坑”。
Git 面板里看不到文件变动?检查是否在工作区根目录
VS Code 的 Git 集成只对打开的**工作区根目录下存在 .git 文件夹**的项目生效。如果打开的是子文件夹(如 my-project/src),即使上层有仓库,Git 面板也会显示“未初始化”或空白。
- 确认路径:在终端运行
git rev-parse --show-toplevel,看输出是否与 VS Code 左下角显示的文件夹路径一致 - 正确做法:用
File > Open Folder...打开含.git的最外层项目文件夹,而非单个文件或子目录 - 临时补救:点击左下角源代码管理图标旁的“…”,选
Open Repository...手动定位.git目录
点击“+”没反应?其实是没触发暂存(Stage)
VS Code 的“+”按钮对应 git add,但默认只对**已跟踪(tracked)文件的修改**生效;新文件(Untracked)需要右键菜单选 Stage Changes 或点击文件名左侧的加号图标(小 +),否则“+”主按钮会置灰。
- 常见误操作:新建
utils.js后直接点顶部“+”,无反应 → 实际需先右键该文件,选Stage Changes - 批量暂存:勾选多个文件前的复选框,再点顶部“+”
- 撤销暂存:在“STAGED CHANGES”区域右键文件 →
Undo Stage(等价于git restore --staged)
提交后发现漏了文件?别急着 amend,先看状态栏提示
提交成功后,VS Code 状态栏(左下角)会显示当前分支名和最近一次提交的简短哈希(如 main @ a1b2c3d)。但如果提交时没勾选所

git commit -m 而没带 -a,遗漏会直接进入“未提交更改”状态,下次提交仍会带上——这不是 bug,是 Git 默认行为。
- 安全做法:提交前务必展开“CHANGES”和“STAGED CHANGES”两个区域,确认所有修改都在 STAGED 里
- 补救方式:如果刚提交完就发现漏了,立即点 Git 面板右上角“…” →
Amend Last Commit(等价于git commit --amend),它会把暂存区内容合并进上一次提交 - 注意:
Amend会改写历史,如果已推送到远程且他人已拉取,不要用
切换分支提示“无法切换,有未提交的更改”?别直接 stash
VS Code 检测到工作区有未提交变更时,会阻止分支切换,这是保护机制。但 Stash 并非唯一解——尤其当改动只是临时调试日志,不值得保留时,更轻量的方式是丢弃。
- 快速丢弃全部未暂存更改:右键“CHANGES”区域 →
Discard Changes(等价于git checkout -- .) - 只丢弃某个文件:右键该文件 →
Discard Changes - 需要保留改动但又切分支?用
Stash(右键 →Stash Changes),之后可在 Git 面板底部“STASHES”里恢复(Apply Stash) - 注意:
Discard Changes不可逆,没有回收站
真正容易被忽略的是:VS Code 的 Git 集成不会自动刷新远程分支列表,Fetch 需手动触发(右键分支名 → Fetch from Origin),所以“拉不到别人新推的分支”往往不是网络问题,而是本地还没 fetch 过。
# vscode
# js
# git
# app
# ai
# vs code
# 网络问题
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
js实现获取鼠标当前的位置
标题:Vue + Vuex + JWT 身份认证的正确实践与常见误区解析
Edge浏览器提示“由你的组织管理”怎么解决_去除浏览器托管提示【修复】
python中快速进行多个字符替换的方法小结
Laravel DB事务怎么使用_Laravel数据库事务回滚操作
C++用Dijkstra(迪杰斯特拉)算法求最短路径
HTML5建模怎么导出为FBX格式_FBX格式兼容性及导出步骤【指南】
html5audio标签播放结束怎么触发事件_onended回调方法【教程】
1688铺货到淘宝怎么操作 1688一键铺货到自己店铺详细步骤
Laravel如何实现全文搜索功能?(Scout和Algolia示例)
消息称 OpenAI 正研发的神秘硬件设备或为智能笔,富士康代工
Win11怎么查看显卡温度 Win11任务管理器查看GPU温度【技巧】
jimdo怎样用html5做选项卡_jimdo选项卡html5实现与切换效果【指南】
HTML 中如何正确使用模板变量为元素的 name 属性赋值
html如何与html链接_实现多个HTML页面互相链接【互相】
如何选择可靠的免备案建站服务器?
简单实现Android验证码
Laravel如何生成API文档?(Swagger/OpenAPI教程)
如何在IIS服务器上快速部署高效网站?
JavaScript数据类型有哪些_如何准确判断一个变量的类型
如何用IIS7快速搭建并优化网站站点?
php静态变量怎么调试_php静态变量作用域调试技巧【解答】
google浏览器怎么清理缓存_谷歌浏览器清除缓存加速详细步骤
ChatGPT 4.0官网入口地址 ChatGPT在线体验官网
Laravel怎么使用Collection集合方法_Laravel数组操作高级函数pluck与map【手册】
高端智能建站公司优选:品牌定制与SEO优化一站式服务
Python文件异常处理策略_健壮性说明【指导】
三星、SK海力士获美批准:可向中国出口芯片制造设备
Win11摄像头无法使用怎么办_Win11相机隐私权限开启教程【详解】
Laravel的路由模型绑定怎么用_Laravel Route Model Binding简化控制器逻辑
Python面向对象测试方法_mock解析【教程】
Laravel Debugbar怎么安装_Laravel调试工具栏配置指南
Android自定义listview布局实现上拉加载下拉刷新功能
Laravel storage目录权限问题_Laravel文件写入权限设置
UC浏览器如何切换小说阅读源_UC浏览器阅读源切换【方法】
Laravel怎么集成Log日志记录_Laravel单文件与每日日志配置及自定义通道【详解】
动图在线制作网站有哪些,滑动动图图集怎么做?
Linux网络带宽限制_tc配置实践解析【教程】
Laravel如何操作JSON类型的数据库字段?(Eloquent示例)
高性能网站服务器部署指南:稳定运行与安全配置优化方案
Android GridView 滑动条设置一直显示状态(推荐)
油猴 教程,油猴搜脚本为什么会网页无法显示?
Java垃圾回收器的方法和原理总结
如何制作公司的网站链接,公司想做一个网站,一般需要花多少钱?
Claude怎样写结构化提示词_Claude结构化提示词写法【教程】
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
bing浏览器学术搜索入口_bing学术文献检索地址
百度浏览器如何管理插件 百度浏览器插件管理方法
Bootstrap整体框架之JavaScript插件架构
Laravel如何实现API资源集合?(Resource Collection教程)

