我在代理后面。要开始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 中以明文形式嵌入您的密码。
请参阅Knut Franke (``)的提交 372370f和提交 ef97639(2016 年 1 月 26 日) 。
帮助者:Junio C Hamano ( )、Eric Sunshine ( )和Elia Pinto ( )。(由Junio C Hamano 合并 -- --在提交 30f302f中,2016 年 2 月 3 日)gitster
sunshinebell28
devzero2000
gitster
http
: 使用凭证 API 处理代理认证目前,将代理凭据传递给 curl 的唯一方法是将它们包含在代理 URL 中。通常,这意味着它们最终会以一种或另一种方式(通过包含在
~/.gitconfig
外壳配置文件或历史记录中)未加密的磁盘上。
由于代理身份验证通常使用域用户,因此凭据可能是安全敏感的;因此,需要一种更安全的凭据传递方式。如果配置的代理包含用户名但不包含密码,请在凭证 API 中查询一个。此外,请确保我们正确批准/拒绝代理凭据。所以:
除了 curl 可以理解的语法之外,还可以指定一个带有用户名但没有密码的代理字符串,在这种情况下,git 将尝试以与其他凭据相同的方式获取一个代理字符串。
有关更多信息,请参阅gitcredentials。
因此语法是:
[protocol://][user[:password]@]proxyhost[:port]
这可以在每个远程的基础上被覆盖;见
remote.<name>.proxy
。
2015 年 10 月更新
从 git 1.8.0和commit 7bcb747 开始,默认的 Windows 凭据助手是wincred
git credential helper,它与 Windows 的凭据管理器交互。
git config --global credential.helper wincred
原始答案(2013 年 3 月):
您可以在 Windows 上使用git-credential-winstore 之类的凭证助手 (git1.7.9+)来存储您的凭证。
您将使用 ' ' 声明它。
然后,您可以在不输入用户名和密码的情况下声明您的代理:git config --global credential.helper winstore
git config --global http.proxy http://proxy.server.com:8080
(虽然我更喜欢使用环境变量http_proxy
和https_proxy
)
另请参阅“ git: ' credential-cache
' 不是 git 命令”