【git】解决能访问github但克隆不了的问题

@TOC


原因

能正常访问网站,是因为浏览器走了代理,但是git没有走代理,所以就会出现这种情况。

1.查看你的代理的地址:

自行查看你所使用的代理软件的地址和端口号,以下图片仅为示例。

在这里插入图片描述

2.ssh设置

  • windows:

Host github.com
    HostName ssh.github.com
    Port 443
    User git
    # socket5协议
    ProxyCommand connect -S 127.0.0.1:7898 %h %p
    # http协议
    #ProxyCommand connect -H 127.0.0.1:7899 %h %p
  • linux:

Host github.com
        Hostname ssh.github.com
        Port 443
        User git
        # socket5协议
        ProxyCommand nc -X 5 -v -x  127.0.0.1:7898 %h %p
        # http协议
        #ProxyCommand nc -X connect -v -x  127.0.0.1:7899 %h %p

注意点:

  1. 默认情况下,SSH 协议使用 TCP 端口 22。许多公司、学校或公共 Wi-Fi 网络为了安全和限制非必要的流量,会完全阻止或过滤非标准端口(如 22 端口)的传出连接,所以这里使用443端口。

  2. 如果使用443端口,Hostname后面必须是ssh.github.com,不能是github.com

  3. 如果使用默认的22端口,即,不设置PortHostname后面就是github.com,不是ssh.github.com

  4. 两种协议只能选一种,不能同时启用。

3.gitconfig设置

linux下,打开~/.gitconfig文件;windows下,打开C:\Users\你的用户名\.gitconfig文件。以下姓名、邮箱、代理地址、端口请根据实际情况填写。

  • 若需要socket代理:

[user]
	name = Han Xu
	email = <填入你的邮箱>
[http "http://github.com/"]
	proxy = socks5://127.0.0.1:7898
[https "https://github.com/"]
	proxy = socks5://127.0.0.1:7898
  • 若需要http代理:

[user]
	name = Han Xu
	email = <填入你的邮箱>
[http "http://github.com/"]
	proxy = http://127.0.0.1:7899
[https "https://github.com/"]
	proxy = http://127.0.0.1:7899

4.测试连接并尝试clone

(base) han@ASUS-TUF-Gaming-F15-FX507ZR:~$ ssh -T git@github.com
Connection to ssh.github.com 443 port [tcp/https] succeeded!
Hi UnderTurrets! You've successfully authenticated, but GitHub does not provide shell access.
$ git clone https://github.com/catsout/wallpaper-engine-kde-plugin.git
正克隆到 'wallpaper-engine-kde-plugin'...
remote: Enumerating objects: 7491, done.
remote: Counting objects: 100% (1538/1538), done.
remote: Compressing objects: 100% (492/492), done.
remote: Total 7491 (delta 1026), reused 1402 (delta 995), pack-reused 5953
接收对象中: 100% (7491/7491), 5.43 MiB | 971.00 KiB/s, 完成.
处理 delta 中: 100% (4687/4687), 完成.

成功!

Last updated

Was this helpful?