无法添加Git上游仓库?执行git fetch upstream报错求助
首先,我先注意到你添加上游仓库的命令里有个明显的拼写错误——你输入的是upstram,少了字母'e',正确的远程仓库名应该是upstream。这很可能就是导致报错的根源!
我们一步步来排查和解决:
1. 检查已添加的远程仓库
先执行这个命令,查看本地仓库的所有远程仓库配置:
git remote -v
如果输出里显示的是upstram而不是upstream,那就是拼写错误导致的。你可以直接重命名这个远程仓库:
git remote rename upstram upstream
或者删除错误的条目,重新添加正确的上游仓库:
git remote remove upstram git remote add upstream http://xx.xxx.xxx.xxx:pppp/path/to.git
2. 验证上游仓库URL的正确性
如果拼写没问题,那接下来要确认你填写的上游仓库URL是否准确。既然你本地已经克隆了主仓库,你可以在主仓库的目录下执行以下命令,获取它的远程仓库URL:
git remote get-url origin
把这个URL复制下来,和你在复刻仓库里添加的upstream URL做对比,确保完全一致——包括协议(HTTP/HTTPS/SSH)、IP地址、端口号和仓库路径,任何一处字符错误都会导致Git无法识别仓库。
3. 测试仓库地址的可访问性
如果URL也没问题,那可以测试一下网络是否能正常访问这个仓库地址。比如用curl命令测试(如果是HTTP/HTTPS协议的话):
curl http://xx.xxx.xxx.xxx:pppp/path/to.git/info/refs?service=git-upload-pack
如果这个命令能返回正常的Git仓库信息,说明网络和仓库地址是没问题的;如果返回错误,可能是网络限制、仓库迁移或者地址配置有误。
4. 检查协议与权限匹配
另外,还要注意协议的一致性:如果你本地主仓库用的是SSH协议(比如git@xxx.xxx.xxx:path/to.git),那你在复刻仓库里添加upstream时也应该使用相同的SSH URL,而不是HTTP。因为HTTP协议可能需要额外的认证,或者仓库本身不允许通过HTTP访问。
完成以上步骤后,再执行git fetch upstream,应该就能正常拉取主仓库的更新了。
内容的提问来源于stack exchange,提问作者stdcerr

