在Visual Studio中为Microsoft Git Provider设置代理

Sak*_*ket 9 git proxy visual-studio visual-studio-2012

我必须使用http代理连接到Git服务器.我可以通过Git Bash设置它并通过以下命令使用它:

git config --global http.proxy http://proxyuser:proxypwd@proxy.server.com:8080
Run Code Online (Sandbox Code Playgroud)

但是,我正在使用Microsoft Git Provider与Visual Studio集成.我无法在任何地方设置代理连接到Git服务器.有没有办法可以在Visual Studio中保存Microsoft Git Provider的代理详细信息?

Lig*_*tCC 13

没有直接的方法在Visual Studio中设置Git代理

你不需要在Visual Studio中设置任何东西来设置Git代理 - 事实上,我没有找到任何方法直接在Visual Studio中这样做,以及使用devenv.exe.config的替代答案我是不能亲自去上班.


但是,有一个简单的解决方案

只要您在安装期间对Git进行了勾选检查,Visual Studio就会安装Git for Windows(默认情况下,最新版本都有此选项).一旦安装了Git for Windows(或任何操作系统上的Git),您就可以在任何命令行,控制台或Powershell窗口中直接轻松设置全局Git代理设置.

实际上,您可以直接在Visual Studio中打开命令或Powershell提示符Tools/NuGet Package Manager/Package Manager Console.

如果安装了Git,您可以git在任何命令行输入,您将获得所有git命令的列表.如果没有发生这种情况,您可以直接安装Git for Windows - 我建议将其作为安装Git Extensions GUI应用程序的一部分,但您的里程可能会有所不同.

特别需要的git命令是:

git config --global http.proxy http://USER:PASSWORD@URL:PORT
git config --global https.proxy http://USER:PASSWORD@URL:PORT
Run Code Online (Sandbox Code Playgroud)

哪里:

  • 代理地址可能是http://也可能不是 https://
  • USER:PASSWORD @是代理需要的用户名和密码
  • URL是代理的完整域名
  • PORT是代理的端口,http和https可能不同

这将在"MyDocuments"文件夹中的全局配置文件中设置代理.根据您的操作系统和其他因素,该文件可能以不同的名称命名或放置在其他位置.您始终可以使用以下命令查看此文件并直接编辑节和键/值对:

git config --global -e
Run Code Online (Sandbox Code Playgroud)

这将在Git中的当前编辑器设置中打开全局配置,或者可能是系统默认文本编辑器.您还可以通过在repo目录中并离开--global标志来查看任何给定仓库的配置文件.

设置代理后,您应该看到以下内容作为文件的一部分:

[http]
    proxy = <http://user:pass@url:port>
[https]
    proxy = <http://user:pass@url:port>
Run Code Online (Sandbox Code Playgroud)

您可以直接输入这些值,而不是使用config命令,或者可以删除它们以从配置中删除代理.

注意:此文件也是存储用于提交的user.name和user.email的位置 - 请参阅本[user]节.


代理的其他有用的Git配置


1. 如果要为当前本地存储库设置代理,也可以不使用--global或替换它--local(发出命令时必须位于repo目录中).


2.此外,您可以为特定URL设置代理,如下所示:

git config --global http.<full URL to apply proxy>.proxy <http://user:pass@url:port>
git config --global https.<full URL to apply proxy>.proxy <http://user:pass@url:port>
Run Code Online (Sandbox Code Playgroud)

请注意,应使用完整的URL(即http://https://在前面).


3.此外,如果你有多个远程回购协议,说originupstream,这需要不同的代理,你可以为一个专门设置的代理.

git config --global http.upstream.proxy <http://user:pass@url:port>
git config --global https.upstream.proxy <http://user:pass@url:port>
Run Code Online (Sandbox Code Playgroud)


4.您可以通过替换""代理URL将代理设置为null .例如,如果您想要全局设置代理,然后排除公司防火墙后面的特定URL(例如企业,Github的内部版本),并且代理不处理本地代理,这可能很有用.地址正确.这对localhost和其他特殊地址或直接IP地址也有帮助.


5.您可以使用以下内容检查给定URL的代理服务器:

git config --get-urlmatch http.proxy <any random full URL>
Run Code Online (Sandbox Code Playgroud)

例如:

git config --get-urlmatch http.proxy https://github.com
Run Code Online (Sandbox Code Playgroud)


mik*_*kep 6

您可以在https://msdn.microsoft.com/en-us/library/dn771556.aspx中为Visual Studio设置代理:

在以下位置找到devenv.exe.config(devenv.exe配置文件):%ProgramFiles%\ Microsoft Visual Studio 14.0\Common7\IDE(或%ProgramFiles(x86)%\ Microsoft Visual Studio 14.0\Common7\IDE).

在配置文件中,找到该<system.net>块,并添加以下代码:XML

<defaultProxy enabled="true" useDefaultCredentials="true">  
    <proxy bypassonlocal="True" proxyaddress=" HYPERLINK "http://<yourproxy:port#" http://<yourproxy:port#>"/>  
</defaultProxy>  
Run Code Online (Sandbox Code Playgroud)

您必须在proxyaddress ="http://中为您的网络插入正确的代理地址.

  • 究竟需要用代理地址替换什么?`proxyaddress =`语句写得很乱.你是否两次都替换`http:// <yourproxy:port #`,并且在第二个实例上排除了尾随的`>"`无论哪种方式,我都尝试了两种方法,它似乎并没有真正起作用(或者任何东西). (2认同)

小智 5

如果对某人有帮助,VS 2017 有一个文件夹:

%ProgramFiles%\Microsoft Visual Studio\2017\Professional\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer\Git\mingw32\etc
Run Code Online (Sandbox Code Playgroud)

使用名为的文件gitconfig- 与中的文件相同C:\Users\[UserName]\.gitconfig- 您可以在其中设置 VS 的代理配置。