Git代理设置

1.临时代理设置

只对当前命令行会话生效,命令行窗口关闭后失效

命令:

1
2
3
4
5
export http_proxy=http://代理服务器地址:端口号 #比如export http_proxy=http://127.0.0.1:7890
export https_proxy=http://代理服务器地址:端口号
# 如果代理服务器需要用户名和密码
# export http_proxy=http://用户名:密码@代理服务器地址:端口号
# export https_proxy=http://用户名:密码@代理服务器地址:端口号

取消临时代理:

1
2
unset http_proxy
unset https_proxy

2.永久全局代理设置

对所有Git操作生效,永久有效(除非手动修改)

命令:

1
2
3
4
5
git config --global http.proxy http://代理服务器地址:端口号
git config --global https.proxy http://代理服务器地址:端口号
# 如果代理服务器需要用户名和密码
# git config --global http.proxy http://用户名:密码@代理服务器地址:端口号
# git config --global https.proxy http://用户名:密码@代理服务器地址:端口号

查看全局代理设置:

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

取消全局代理设置:

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

存储位置:”C:\Users\banlan.gitconfig”,可通过文本编辑器自行修改

3.与系统环境变量的区别

系统->高级系统设置->环境变量->系统变量

三者的区别和关系

特性 Git 全局配置 临时环境变量 系统环境变量
存储位置 ~/.gitconfig 仅在当前会话有效 操作系统相关
优先级 最高 (Git 优先使用自己的配置) 最低 (除非没有其他配置)
作用范围 仅影响 Git 命令 仅影响当前 shell 会话 影响所有使用系统代理的程序
持久性 永久 (除非手动修改) 临时, 关闭 shell 失效 永久 (除非手动修改)

关系:

  • Git 首先会检查自己的全局配置 (~/.gitconfig) 中是否设置了代理。 如果设置了,就使用 Git 全局配置。
  • 如果没有设置 Git 全局代理,Git 可能会检查临时环境变量 (http_proxy, https_proxy)。
  • 如果临时环境变量也没有设置,Git 有时 (不总是) 会尝试使用系统环境变量。 但这种依赖性并不稳定,不推荐依赖系统环境变量来设置 Git 代理。

总结:

  • 优先级: Git 全局配置 > 临时环境变量 > 系统环境变量 (一般来说)。
  • 最佳实践: 推荐使用 Git 全局配置来设置 Git 代理。 如果只需要临时使用代理,可以使用临时环境变量。 避免依赖系统环境变量来配置 Git 代理。