网络共享Git裸仓库克隆/推送/拉取操作失败求助
解决网络共享路径Git裸仓库无法访问的问题
看起来你遇到的核心问题是Git在解析网络映射驱动器路径时出现了异常(从GIT_TRACE日志里能看到路径莫名变成了Hu:/data/some_repo.git,多了个奇怪的前缀H),加上初始化仓库时的fstat错误,大概率是Git对Windows网络共享路径的解析或权限处理出了问题。下面给你几个针对性的解决方向:
1. 升级Git到最新稳定版
旧版本的Git在处理Windows网络映射驱动器、UNC路径时可能存在已知bug,比如路径解析时额外添加字符的问题。先下载安装最新版Git,之后再测试克隆/推送操作。
2. 改用UNC路径替代映射驱动器
别用u:\data\some_repo.git这种映射路径,直接用共享的完整UNC路径试试,Git Bash里可以这样写:
git clone "//FQDN.com/site_###/Groups/data/some_repo.git"
映射驱动器字母(U:)可能在Git进程环境里被错误解析,直接用UNC路径能绕开这个问题。
3. 开启Git长路径支持
如果共享路径层级较深,可能触发Git的路径长度限制,导致fstat这类文件系统操作失败。执行下面的命令开启全局长路径支持:
git config --global core.longpaths true
之后再尝试初始化或克隆操作。
4. 以管理员身份运行Git
有时候即使你有文件系统权限,Git进程可能没有足够权限访问共享资源。试试用管理员身份打开Git Bash,再执行相关命令,看能不能解决fstat错误。
5. 重新测试共享路径的可用性
先在共享路径上创建一个新的裸仓库,确认路径本身没问题:
git init --bare "//FQDN.com/site_###/Groups/data/test_new.git"
如果这个命令能成功,说明原仓库可能存在损坏,你可以把本地复制好的仓库推送到这个新创建的裸仓库里替换原仓库。
如果以上方法都不行,还可以手动关闭Git的core.filemode全局设置:
git config --global core.filemode false
内容的提问来源于stack exchange,提问作者Naib
相关产品推荐
相关产品推荐

