执行git fetch报错提示非Git仓库,如何排查远程权限问题?
问题分析与解决
可能的原因及排查方向
本地Git远程URL配置错误
你执行git fetch --all时,Git把远程路径识别成了本地路径而非服务器路径。比如你的远程仓库URL可能写成了/html/project,正确格式应该是[用户名]@[服务器地址]:/html/project。这种情况下Git会在本地查找该路径,自然找不到,从而抛出错误。
执行git remote -v查看当前远程仓库的URL配置,确认是否符合SSH远程路径规范。SSH操作用户不一致
你SSH登录服务器用的用户,和执行git fetch时使用的SSH用户可能不是同一个。比如登录用的是userA,但Git配置的远程用户是userB,即便外层/html/project目录权限是drwxrwxr-x,如果.git目录权限是drwx------(仅所有者可访问),userB就无法读取.git内的内容,导致Git判定该路径不是仓库。
登录服务器后执行ls -ld /html/project/.git,查看.git目录的权限设置,确认其他用户是否有读权限。服务器路径存在挂载/别名差异
部分服务器会使用路径别名、挂载点或chroot环境,你SSH登录后看到的/html/project,和Git操作时访问的/html/project可能不是同一个实际路径。比如服务器为特定用户配置了chroot,该用户看到的路径是chroot内的虚拟路径,而Git访问的是系统真实路径,导致路径不匹配。
内容的提问来源于stack exchange,提问作者peace_love
相关产品推荐
相关产品推荐

