1.临时代理设置
只对当前命令行会话生效,命令行窗口关闭后失效
命令: 在Linux下,命令行窗口内执行:
export http_proxy=http://代理服务器地址:端口号 #比如export http_proxy=http://127.0.0.1:7890export https_proxy=http://代理服务器地址:端口号# 如果代理服务器需要用户名和密码# export http_proxy=http://用户名:密码@代理服务器地址:端口号# export https_proxy=http://用户名:密码@代理服务器地址:端口号
在Windows下,命令行窗口内执行:
$env:http_proxy = "http://127.0.0.1:7890"$env:https_proxy = "http://127.0.0.1:7890"
对于GitHub push的话,一般不会生效,直接指定:
git -c http.proxy="http://127.0.0.1:7890" push
验证:
# 查看当前会话的 HTTP/HTTPS 代理设置Get-ChildItem Env: | Where-Object { $_.Name -match "proxy" }# 或直接输出echo "HTTP_PROXY: $env:http_proxy"echo "HTTPS_PROXY: $env:https_proxy"
取消临时代理:
unset http_proxyunset https_proxy
2.永久全局代理设置
对所有Git操作生效,永久有效(除非手动修改)
命令:
git config --global http.proxy http://代理服务器地址:端口号git config --global https.proxy http://代理服务器地址:端口号# 如果代理服务器需要用户名和密码# git config --global http.proxy http://用户名:密码@代理服务器地址:端口号# git config --global https.proxy http://用户名:密码@代理服务器地址:端口号
查看全局代理设置:
git config --global --get http.proxygit config --global --get https.proxy
取消全局代理设置:
git config --global --unset http.proxygit 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 代理。