配置 Git 代理
2023-09-04 git proxy最近我帮助了一个朋友配置 Git 代理, 一开始发现没有生效,后来发现是配置错了地方。把学到的分享给大家。
一些基础知识
在涉及网络代理时,有两种主要协议要考虑:SOCKS和HTTP。这两种协议都可以与 Git 无缝配合使用。如今,当我们提到SOCKS时,几乎总是指的是SOCKS5。在本文中,我将以SOCKS5作为示例。
Git 还支持两种主要的 URL 协议:HTTP(s) 和 SSH。例如,https://github.com/user/repo.git
是一个 HTTP(s) 远程URL,而 ssh://github.com/user/repo.git
是一个 SSH 远程 URL。
设置代理
让我们深入了解如何使用不同配置来设置Git代理:
Git协议 | 代理协议 | 配置文件 | 配置 |
---|---|---|---|
HTTP(s) | HTTP | ~/.gitconfig | git config --global http.proxy http://127.0.0.1:1080 |
HTTP(s) | SOCKS | ~/.gitconfig | git config --global http.proxy socks5h://127.0.0.1:1080 |
SSH | HTTP | ~/.ssh/config | Host github.com |
SSH | SOCKS | ~/.ssh/config | Host github.com |
一些技巧
以下是一些细节:
git config http.proxy
设置也适用于HTTPS URL。你可以通过域名使用
http.proxy
进行有条件的代理设置。例如:[http "https://example.com/"] http.proxy = socks5h://127.0.0.1:1080
socks5h
和socks5
的区别是,前者的域名解析过程(通常是通过 UDP 传输完成的)也是经过代理的,对于某些场景会比较有用。
总结
设置 Git 代理不必令人生畏,但它确实涉及在不同文件中配置不同的设置。希望能够帮助到大家。
Comments