Git报错“不是Git仓库”及“无法读取远程仓库”问题求助
问题排查与解决步骤
1. 核对远程仓库路径与格式
- 本地执行
git remote -v确认远程URL格式,SSH方式需为user@服务器IP:/path/to/repo.git,必须以.git结尾(服务器端需是裸仓库)。 - 登录服务器,执行
ls -la /path/to/repo.git,确认该目录存在且包含config、objects、refs等Git核心文件。
2. 确认服务器端裸仓库创建正确
- 服务器端创建仓库必须用
git init --bare repo.git,若误创建为非裸仓库(直接git init)会导致推送失败。重新创建命令:rm -rf /path/to/repo.git git init --bare /path/to/repo.git
3. 检查SSH连接与权限
- 本地执行
ssh user@服务器IP,确认能正常登录(密钥或密码方式均可)。若连接失败:- 服务器端检查
sshd状态:sudo systemctl status sshd - 确认防火墙开放22端口:
sudo ufw status(使用ufw时)
- 服务器端检查
- 修正仓库目录权限:确保SSH用户对仓库有读写权限
sudo chown -R user:user /path/to/repo.git sudo chmod -R 755 /path/to/repo.git
4. 排查Sourcetree配置问题
- 确认Sourcetree使用的SSH密钥与本地
~/.ssh目录下的密钥一致(偏好设置→SSH)。 - 尝试在本地终端执行
git push origin 你的分支名,若终端能成功推送,说明是Sourcetree代理或配置问题,关闭不必要的HTTP代理后重试。
5. 群晖NAS额外排查点
- 确保群晖上的Git仓库是裸仓库,创建方式符合要求。
- 开启群晖SSH服务:控制面板→终端机和SNMP→勾选“启动SSH功能”。
- 给对应用户分配仓库所在共享文件夹的读写权限。
内容的提问来源于stack exchange,提问作者Eger Tutanhamon
相关产品推荐
相关产品推荐

