问题出现:首先是我在本地建了个项目,写完了之后呢打算用sourceTree推到gitlab的仓库里,奈何这gitlab仓库怎么也连接不上。基于我是第一次使用sourceTree,想着是不是啥东西没配置好,结果各种捣鼓发现gitee和github都能连上仓库,克隆推送都没出现问题,就是gitlab怎么搞都不行。

接下来看看都是报了些啥错,还有咋一步步解决的吧~

报错一:无效源路径

在这里插入图片描述
问题:在确保克隆的路径确实没出错的前提下,提示克隆的仓库是个无效的源路径

报错二:提示SSH密钥认证失败

在这里插入图片描述

报错三:用命令行试着克隆,提示输入密码

此处忘了截图,过程大概就是我试着不用sourcetree克隆,而是直接用命令行克隆仓库,结果就是输入克隆地址后,就一直提示输入密码,但是我的密码是死活都输不进去(没错就像是按键失效了一样,啥都输不进去)

后来查了资料,大概意思就是如果出现输入密码的情况,一般就是ssh没有配置好的问题

报错四:提示缺少known_hosts文件在这里插入图片描述

这个提示就是生成公钥密钥的.ssh文件离缺少一个known_hosts文件,它是干什么用的呢?

查阅所得:ssh会把你每个访问过计算机的公钥(public key)都记录在~/.ssh/known_hosts。当下次访问相同计算机时,OpenSSH会核对公钥。如果公钥不同,OpenSSH会发出警告, 避免你受到DNS Hijack之类的攻击。

这个报错提示的解决方法比较简单,就是直接在后面输入yes(记得别直接回车啊大家伙😭),然后文件里就会自动生成known_hosts文件。

接着解决上述的报错问题

一.检查公钥密钥的配置是否正确

检查本地是否已经配置了公钥密钥,文件路径如下
在这里插入图片描述

如果检查没有该文件,那么配置公钥密钥方法(配置过的可以把文件夹里的东西删了,按下面步骤重新配置一次)

  1. 桌面右击–>git bash here
  2. 如下命令 ssh-keygen -t rsa -C “邮箱@***.com”(邮箱自行输入)–>回车
  3. 接着会出现三个问题(提示输入密码啥的空着它),直接按三次回车
  4. 最后成功生成密钥对

有了公钥密钥后就要将公钥配置到sourceTree和gitlab上(gitee和github配置同理)

查看公钥的方法

  1. 根据上图的路径打开id_ras.pub文件(整个文件全部拷贝)
  2. 在git bash hrer里输入cat ~/.ssh/id_rsa.pub(从ssh开始全部拷贝)
    在这里插入图片描述

sourcetree配置ssh

工具–选项
在这里插入图片描述
在这里插入图片描述

gitlab配置ssh

登陆gitlab–头像–setting
在这里插入图片描述
在这里插入图片描述
配置完公钥之后就可以回去看看报错解决了没有

后来配置完ssh后又报了端口的错题,提示gitlab连接被拒绝的错误

Permission denied (publickey).

在查阅了不下几十后发现了一篇博客里提到代理节点被占用的问题
搞了几个钟实在是累了,想着就死马当活马医试试好了

  1. 首先查看代理是不是被占用了 git config --global http.proxy
    在这里插入图片描述
    这里显示代理确实是被占用了
  2. 接着取消代理git config --global --unset http.proxy

然后重新试着克隆仓库,然后就克隆成功了。。。。

总结:最后解决的就跟做梦一样,前前后后搞了两三天,光是配置ssh就试了不下五遍,sourceTree卸载了又重下就怕哪一步出错导致后面的问题。然后回想起来我不管是用sourceTree或者是命令行做克隆都没有走代理克隆的方法,最后查了一下发现我在git的全局配置里设置了默认代理(害…学渣渣还是继续学习去了)
在这里插入图片描述
随便一提:sourceTree里也可以自定义代理
在这里插入图片描述

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐