如何解决Git合并/拉取时的“文件名过长”错误?
解决Git合并/拉取时的“文件名太长”错误
核心原因
Windows系统默认限制文件名长度(传统上限为260字符),你的仓库中存在一个名称过长的远程分支跟踪记录,导致Git执行gc(仓库清理)操作时无法创建对应的日志文件。VS Code的Git插件能正常工作,是因为它默认启用了Git的长路径支持,或内置的Git客户端已配置相关参数。
解决方案
1. 启用Git长路径支持
这是最直接的解决方法,让Git允许处理超过Windows默认长度的路径:
- 全局生效(所有Git仓库适用):
git config --global core.longpaths true - 仅当前仓库生效:
git config core.longpaths true
执行后重新尝试合并或拉取操作,也可手动触发仓库清理验证:
git gc --prune=now
2. 清理过长名称的远程跟踪分支
若不需要保留该长名称分支,可直接清理相关跟踪记录:
- 查看所有远程跟踪分支,确认目标分支:
git branch -r - 删除本地的远程跟踪分支:
git branch -d -r origin/very_long_branch_name - 若远程分支已无用,同步删除远程端分支:
git push origin --delete very_long_branch_name
完成后执行git gc,即可正常完成仓库清理。
3. 临时绕过自动GC(不推荐长期使用)
若需紧急完成合并/拉取,可临时禁用自动GC:
git config --global gc.auto 0
操作完成后记得改回默认设置(git config --global gc.auto 6700),避免仓库膨胀影响性能。
内容的提问来源于stack exchange,提问作者HuLu ViCa
相关产品推荐
相关产品推荐

