10

我在代理后面。要开始git工作,我必须添加

proxy = http://username:password@proxy.at.your.org:8080

.gitconfig.

因为username并且password是我的系统凭据,所以这个解决方案很糟糕,因为我必须将它们存储为cleartext.

我正在使用Google Chrome不需要设置任何代理设置的地方,因为它使用系统代理设置。

如何做到这一点git

4

1 回答 1

10

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 日)
gitstersunshinebell28devzero2000
gitster

http: 使用凭证 API 处理代理认证

目前,将代理凭据传递给 curl 的唯一方法是将它们包含在代理 URL 中。通常,这意味着它们最终会以一种或另一种方式(通过包含在~/.gitconfig外壳配置文件或历史记录中)未加密的磁盘上。
由于代理身份验证通常使用域用户,因此凭据可能是安全敏感的;因此,需要一种更安全的凭据传递方式。

如果配置的代理包含用户名但不包含密码,请在凭证 API 中查询一个。此外,请确保我们正确批准/拒绝代理凭据。所以:

除了 curl 可以理解的语法之外,还可以指定一个带有用户名但没有密码的代理字符串,在这种情况下,git 将尝试以与其他凭据相同的方式获取一个代理字符串。
有关更多信息,请参阅gitcredentials
因此语法是:

[protocol://][user[:password]@]proxyhost[:port]

这可以在每个远程的基础上被覆盖;见remote.<name>.proxy


2015 年 10 月更新

从 git 1.8.0commit 7bcb747 开始,默认的 Windows 凭据助手是wincredgit 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_proxyhttps_proxy

另请参阅“ git: ' credential-cache' 不是 git 命令


于 2013-03-09T11:45:03.247 回答