如何为 Git 设置代理

1. 连接情况总览#

如果在克隆或从远程仓库获取数据时遇到很慢甚至超时的情况,那么此时可能需要配置 Git 的代理。这里讲讲两种情况的代理方法:使用 HTTP/HTTPS 协议和使用 SSH 协议。

  • 如果远程仓库的格式像下面那样,这种就是使用 HTTP/HTTPS 协议连接到 Git 仓库的情况
http://github.com/cms-sw/cmssw.git
https://github.com/cms-sw/cmssw.git
  • 如果远程仓库的格式像下面那样,这种就是使用 SSH 协议连接到 Git 仓库的情况
git@github.com:cms-sw/cmssw.git
ssh://git@github.com/cms-sw/cmssw.git

2. 使用 HTTP 或 HTTPS 协议连接到 Git 仓库的代理方法#

2.1 针对所有域名的 Git 仓库#

# HTTP/HTTPS 协议,port 需与代理软件设置的一致
git config –-global http.proxy http://127.0.0.1:port  # 注意修改 port

# SOCKS5 协议,port 需与代理软件设置的一致
git config --global http.proxy socks5://127.0.0.1:port  # 注意修改 port

注意:

  • --glboal 选项指的是修改 Git 的全局配置文件~/.gitconfig,而非各个 Git 仓库里的配置文件.git/config
  • port则为端口号。

2.2 针对特定域名的 Git 仓库#

# HTTP/HTTPS 协议
git config –global http.url.proxy http://127.0.0.1:port
# 以 Github 为例
git config –global http.https://github.com.proxy http://127.0.0.1:port

# SOCKS5 协议
git config –global http.url.proxy socks5://127.0.0.1:port
# 以 Github 为例
git config –global http.https://github.com.proxy socks5://127.0.0.1:port

注意:

  • url 即为需要走代理的仓库域名,url 以 http:// 和 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..*,即可找到相关信息。
posted @ 2022-05-20 12:58  不加面  阅读(2002)  评论(0编辑  收藏  举报