在代理之后使用git

我在一个代理之后。 为了让git工作,我将不得不补充

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

.gitconfig

由于usernamepassword是我的系统凭据,这个解决scheme很糟糕,因为我将不得不将这些存储为cleartext

我使用Google Chrome ,因为它使用系统代理设置,所以我不需要设置任何代理设置。

如何用git做到这一点?

2016年2月更新:

使用git 2.8(2016年3月),您不必在URL中输入明文密码。

见Knut Franke(“)的 提交372370f , 提交ef97639 (2016年1月26日) 。
帮助: Junio C gitstergitster ) , Eric Sunshine( sunshinebell28 )和Elia Pinto( devzero2000 ) 。
(由Junio C gitster合并- gitster -在承诺30f302f ,2016年2月3日)

http :使用凭证API来处理代理验证

目前,通过代理凭证卷曲的唯一方法是将它们包含在代理URL中。 通常,这意味着它们将以未加密的方式结束(通过包含在~/.gitconfig ,shell配置文件或历史记录中)。
由于代理身份验证通常使用域用户,因此凭据可能对安全敏感; 因此,通过证书的安全方式是可取的。

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

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

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

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


2015年10月更新

由于git 1.8.0和提交7bcb747 ,默认的Windows凭据助手wincred ,一个git凭证助手,与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命令 ”