前言

Git相信大家是经常使用的东西了, 通过他来管理我们写的代码, 但是最近我同步代码时总是失败, git clone的时候很慢有时候就会超时

于是就在 Google 的帮助下找到了解决办法特此记录一下, Git需要设置代理, 才能正常访问 Github 等网站

用到的工具

  • Clash For Windwos
  • Git

Git设置代理

在 Clash 中设置固定的端口, 并且关闭随机端口

关闭随机端口

全局代理

打开 Git 在终端输入一下命令

1
2
3
4
git config --global https.proxy http://127.0.0.1:7890
git config --global https.proxy https://127.0.0.1:7890
git config --global http.proxy 'socks5://127.0.0.1:7890'
git config --global https.proxy 'socks5://127.0.0.1:7890'

根据自己的代理类型来设置

注意--glboal 选项指的是修改 Git 的全局配置文件 ~/.gitconfig,而非各个 Git 仓库里的配置文件 .git/configprotocol 指的是代理的协议,如 http,https,socks5 等。port 则为端口号(我这里是7890)。

针对特定域名代理

1
git config --global http.url.proxy protocol://127.0.0.1:port

注意

  • 此处的 url 即为你需要走代理的仓库域名,urlhttp://https:// 打头的均用这个方法。
  • 网上很多中文教程,可能会告诉你 https:// 打头的 url 使用“git config --global https.https://example.com.proxy protocol://127.0.0.1:port”,这种做法其实是错的!记住一点:Git 不认 https.proxy ,设置 http.proxy 就可以支持 https 了。
  • 如果想了解 url 的更多模式,如子域名等的情况,可参照 Git 的官方文档 。网页内容搜索 http.<url>.*,即可找到相关信息。

SSH 协议代理设置

修改 SSH 配置文件 ~/.ssh/config 没有的可以新建一个

Windows SSH配置文件路径:C:\Users\你的用户名\.ssh\config

Linux SSH配置文件路径:/home/你的用户名/.ssh/config

1
2
3
4
5
# 全局
# ProxyCommand connect -S 127.0.0.1:1080 %h %p
# 只为特定域名设定
Host github.com gitlab.com
ProxyCommand connect -S 127.0.0.1:1080 %h %p

-S 代表走socks代理。( -H 实现http和https的仓库的克隆

Git 取消代理

1
2
git config --global --unset http.proxy
git config --global --unset https.proxy

参考

GIt设置代理

文让你了解如何为 Git 设置代理

git设置代理