我在代理后面。要让 git
工作,我需要添加
proxy = http://username:password@proxy.at.your.org:8080
到.gitconfig
文件。
由于username
和password
是我的系统凭据,这种解决方案很糟糕,因为我必须将它们存储为cleartext
明文。
我正在使用Google Chrome
,在那里我不需要设置任何代理设置,因为它使用系统代理设置。
如何在git
中实现这一点?
我在代理后面。要让 git
工作,我需要添加
proxy = http://username:password@proxy.at.your.org:8080
到.gitconfig
文件。
由于username
和password
是我的系统凭据,这种解决方案很糟糕,因为我必须将它们存储为cleartext
明文。
我正在使用Google Chrome
,在那里我不需要设置任何代理设置,因为它使用系统代理设置。
如何在git
中实现这一点?
更新于2016年2月:
使用git 2.8(2016年3月),您不必在url中明文嵌入密码。
参见 commit 372370f,commit ef97639(2016年1月26日)由Knut Franke(“”)提交。
帮助者:Junio C Hamano(gitster
),Eric Sunshine(sunshinebell28
)和Elia Pinto(devzero2000
)。
(由Junio C Hamano -- gitster
--合并于commit 30f302f,2016年2月3日)
http
: 使用凭证 API 处理代理身份验证目前,将代理凭据传递给 curl 的唯一方法是将它们包含在代理 URL 中。通常,这意味着它们最终会以某种方式(通过包含在~/.gitconfig
、shell 配置文件或历史记录中)未加密地存储在磁盘上。
由于代理身份验证通常使用域用户,因此凭据可能具有安全敏感性;因此,需要更安全的传递凭据的方式。
如果配置的代理包含用户名但不包含密码,请查询凭证 API 获取密码。此外,确保我们正确批准/拒绝代理凭据。
除了 curl 理解的语法之外,还可以指定一个只有用户名没有密码的代理字符串,在这种情况下,git 将尝试以与其他凭据相同的方式获取密码。
有关详细信息,请参见gitcredentials。
语法如下:
[protocol://][user[:password]@]proxyhost[:port]
remote.<name>.proxy
。
更新于2015年10月
自 git 1.8.0 和 提交7bcb747以来,默认的Windows凭据助手是wincred
,它是一个与Windows凭据管理器交互的git凭据助手。
git config --global credential.helper wincred
原始回答(2013年3月):
您可以在Windows上使用credential helper (git1.7.9+),例如git-credential-winstore,以存储您的凭据。
您将使用'git config --global credential.helper winstore
'进行声明。
然后,您可以声明代理而不必输入用户名和密码:
git config --global http.proxy http://proxy.server.com:8080
尽管我更喜欢使用环境变量http_proxy
和https_proxy
,
另请参见 "git: 'credential-cache
'不是git命令"