> 技术文档 > 【开发奇遇记】IDEA、VS Code 中 Git 操作奇慢无比?_vs code git 超级慢

【开发奇遇记】IDEA、VS Code 中 Git 操作奇慢无比?_vs code git 超级慢


【开发奇遇记】IDEA、VS Code 中 Git 操作奇慢无比?

你是否也遇到了这样的场景:

项目代码写完,准备优雅地 git commitgit push,结果点击按钮后,IDE 的进度条就开始无尽地旋转。一杯咖啡喝完了,它还在转。切换到终端(命令行),git 命令却如丝般顺滑,秒速完成。

无论是 IntelliJ IDEA 还是 VS Code,无论是前端同学还是后端伙伴,都纷纷中招。大家百思不得其解:网络没问题,Git 服务器好好的,难道是用了假的 IDE?
最近几天发现,前期以为只有自己有,后发现很多小伙伴中招…

如果你正被这个问题困扰,那么恭喜你,这篇文章可能会“救你老命”!

一、诡异的症状:命令行如飞,IDE 卡死

问题的核心症状非常明确且具有迷惑性:

  1. IDE 内 Git 操作极度缓慢CommitPushPullFetch 等操作,在图形化界面中执行,响应时间长得令人发指,有时甚至直接卡到无响应。
  2. 命令行(Terminal)Git 飞快:在 IDEA 或 VS Code 自带的终端,或者系统终端里,手动执行 git push 等命令,一切正常,速度飞快。
  3. 跨 IDE、跨项目:问题并非某个特定 IDE 或项目的专利,JetBrains 全家桶和 VS Code 都可能出现,影响范围极广。

这种“命令行正常,GUI 失效”的现象,通常指向一个核心原因:有一个后台进程干扰了 IDE 的正常文件操作。IDE 在执行 Git 操作时,会进行大量的文件状态读取、索引和比对,而命令行工具的实现方式可能绕过了某些系统钩子(Hooks),使其幸免于难。

二、排查之路:从网络到插件,我们都试过了

按照常规思路,我们进行了一系列排查:

  • 检查网络和 GitLab/GitHub 服务器? -> 命令行飞快,排除。
  • 清理 IDE 缓存和索引? -> 试过,无效。
  • 卸载重装 Git 插件甚至 IDE 本身? -> 有小伙伴这么干了,问题依旧。
  • 是项目太大,.git 目录太臃肿? -> 命令行再次证明了清白。

就在大家准备重装系统“大法”之前,一位细心的伙伴在任务管理器里发现了一个可疑的后台服务。

三、真相大白:罪魁祸首 —— Microsoft PC Manager

万万没想到,答案竟藏在一个意想不到的地方:Microsoft PC Manager Service
【开发奇遇记】IDEA、VS Code 中 Git 操作奇慢无比?_vs code git 超级慢

这是什么?
Microsoft PC Manager(微软电脑管家)是微软官方出品的一款系统维护和优化工具,功能类似国内常见的XX安全卫士或XX电脑管家,提供垃圾清理、病毒扫描、系统加速等功能。很多用户可能是在系统更新或通过微软商店不经意间安装了它。

它为什么会导致 Git 变慢?
我们推测,其核心问题在于它的实时文件保护/扫描机制
为了“保护”你的电脑,这个服务会实时监控文件的读写操作。当 IDEA 或 VS Code 进行 commit 这样涉及大量文件读写的操作时,Microsoft PC Manager Service 就会介入,对每一个被 IDE 访问的文件进行扫描和检查。

想象一下,你的项目有成千上万个文件,IDE 每读取一个文件的状态,都要被这个“管家”拦下来“盘问”一遍,这个 I/O 延迟累加起来,就造成了我们在 IDE 中看到的“卡死”现象。

四、解决方案:禁用它,还你清爽!

解决方法简单粗暴且立竿见影:禁用 Microsoft PC Manager Service 服务

操作步骤:

  1. 打开服务管理器

    • 按下 Win + R 键,输入 services.msc,然后回车。
  2. 找到该服务

    • 在服务列表中,找到名为 Microsoft PC Manager Service 的服务。
  3. 停止并禁用服务

    • 右键点击该服务,选择 “属性”
    • 在“常规”选项卡中:
      • 点击 “停止” 按钮,立即停止该服务。
      • “启动类型” 修改为 “禁用”,防止它开机自启。
    • 点击“应用”,然后“确定”。

完成以上操作后,无需重启电脑,再次打开你的 IDEA 或 VS Code,尝试一下 Git 操作。你会发现,世界瞬间清净了,那熟悉的丝滑感又回来了!

五、总结

这次的“破案”经历给我们一个深刻的教训:当遇到难以解释的性能问题,特别是当命令行工具和图形化应用表现不一致时,一定要优先排查后台的杀毒软件、系统优化工具或防火墙。

这些工具为了实现其“安全”和“优化”功能,往往会采用一些侵入性很强的技术,深入系统底层挂上钩子,这很容易与开发者工具(这类工具同样需要大量的文件和网络访问权限)发生冲突。

希望这篇文章能帮助到同样被此问题折磨的你。如果你觉得有用,不妨分享给你的同事们,也许就能拯救他们一下午的宝贵开发时间!