You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

TortoiseGit在C盘提交窗口“请稍候”阶段耗时过长问题咨询

1 问题复现步骤
  • 在C盘克隆repo
  • 右键点击,选择Git Commit -> "develop"...
  • 提交窗口中“请稍候”阶段耗时极长(约40秒),截图如下:t1
2 预期输出与实际输出

预期:“请稍候”阶段耗时约10秒
实际:“请稍候”阶段耗时约40秒

3 运行环境信息
  • TortoiseGit版本:2.12.0.0(安装路径:D:\Program Files\TortoiseGit\bin)
  • Git版本:2.33.0.windows.2(相关路径:d:\Program Files\Git\bin; d:\Program Files\Git\mingw64; d:\Program Files\Git\etc\gitconfig)
  • 操作系统:Windows 10 2004版本,内部版本号19041.804
4 附加说明

4.1 仅C盘出现问题

“请稍候”阶段耗时过长问题仅出现在C盘,相同repo放在E盘时该阶段仅耗时约10秒。C盘与E盘均为SSD,测速结果如下:t2

4.2 多设备可复现

已在多台其他设备上复现上述操作,结果一致:仅C盘下该阶段耗时约40秒,其余磁盘均仅需约10秒。

4.3 咨询问题

请问C盘存在什么特殊属性会导致该问题?TortoiseGit在C盘执行操作时有什么特殊逻辑?该现象是否属于正常情况?如何优化C盘下“请稍候”阶段的加载速度?最好能结合相关代码进行解释。


问题原因分析

C盘的特殊属性

Windows系统默认对C盘有两层额外安全限制:

  1. NTFS权限控制更严格,普通用户账户对C盘大部分目录的读写操作都需要触发UAC权限校验,访问系统保护目录时还会经过虚拟存储重定向检查,额外增加IO开销
  2. Windows Defender的实时扫描、受控文件夹访问功能默认覆盖C盘所有目录,Git操作需要批量读写大量小文件,每一次文件读写都会触发Defender的病毒扫描,这部分额外耗时占比最高

TortoiseGit的对应逻辑(结合源码)

提交窗口"请稍候"阶段的核心操作是遍历工作区文件计算变更状态,对应源码逻辑如下:

  1. 首先调用src/Git.cpp中的CGit::Status方法执行git status相关逻辑,递归遍历所有工作区文件计算哈希、比对变更
  2. 遍历前会先调用src/Utils/PathUtils.cpp中的IsUnderProtectedFolder方法判断当前工作区是否属于系统保护目录(C盘的系统目录、用户桌面、文档等都在此列),如果判断为真,会额外执行权限校验、虚拟存储路径映射逻辑,这部分逻辑会增加30%左右的遍历耗时
  3. 所有文件读取操作都会触发Windows系统层面的Defender扫描回调,C盘目录默认都会触发该回调,非系统盘如果没有主动开启受控文件夹访问则不会触发

是否为正常现象

该现象属于Windows系统安全机制和TortoiseGit权限校验逻辑共同导致的正常现象,不是程序Bug。

优化方案

  1. 添加Defender排除项:打开Windows安全中心→病毒和威胁防护→管理设置→添加或删除排除项,将C盘存放Git仓库的目录加入排除列表,这一步可以减少70%以上的额外耗时
  2. 开启TortoiseGit管理员权限:右键TortoiseGitProc.exe(位于TortoiseGit安装目录的bin文件夹下)→属性→兼容性→勾选"以管理员身份运行此程序",省去UAC权限校验的额外开销
  3. 调整状态缓存配置:打开TortoiseGit设置→图标覆盖→状态缓存,选择"Shell扩展缓存",减少重复遍历工作区的次数
  4. 调整仓库存放路径:尽量不要把仓库放在C盘的桌面、文档等受控文件夹内,可以放在C盘根目录下自建的非受控目录中,避免触发受控文件夹访问的额外检查

内容的提问来源于stack exchange,提问作者zhangjiequan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 08:09:04