2016-02-16 141 views
2

我位於企業網絡內部,需要將代理設置爲訪問Intranet外部的服務器。如何從命令行將git config變量設置爲空值

因此,爲了能夠從github中獲得git clone我們已經設置了HTTP_PROXY環境變量。這工作正常。

但是,我們也有一個內部的git服務器。要正確訪問我們必須而不是使用代理。它的工作原理,如果我在.gitconfig文件進行設置:

[http "http://stash.fabricam.com/"] 
    proxy = 

由於代理設置爲空值,在這裏,沒有代理用於git clone從有問題的服務器。

但是,我希望能夠使用git config --global在腳本中創建此配置。但我無法弄清楚如何去做。

這些不工作

git config --global http.http://stash.fabricam.com/ "" 
git config --global http.http%3A%2F%2Fstash.fabricam.com%2F "" 
git config --global http.http%3A%2F%2Fstash.fabricam.com%2F '' 
git config --global --add http.http%3A%2F%2Fstash.fabricam.com%2F 

正如你可以看到我已經嘗試使用percent encoding,但這並不能幫助。

我已閱讀this post,但我不想在每個命令上設置此項,我真的想要修改.gitconfig文件。

我試圖設置no_proxy環境變量,但git似乎沒有注意到它。

我在Windows環境中,運行git 2.7.1

編輯

感謝@choroba我遠一點。

此命令的行爲取決於外殼不同的是:

git config --global http."http://stash.fabricam.com/".proxy '' 
  • PowerShell,這確實什麼都沒有。

  • cmd.exe

它創建了一個設置

[http "http://stash.fabricam.com/"] 
    proxy = '' 

不起作用。空字符串根本就不是沒有字符串。它會導致這種行爲:

> git clone http://stash.fabricam.com/test.git 
Cloning into 'test'... 
fatal: unable to access 'http://stash.fabricam.com/test.git/': 
Couldn't resolve proxy '''' 
  • bash(即Git附帶在Windows上)的命令確實工作,樹立正確的包含空值。但是我寧願在窗戶上使用bash腳本,所以這對我來說不是一個好的解決方案。

回答

3

您必須包括.proxy鍵:

git config --global http."http://stash.fabricam.com/".proxy '' 

在PowerShell中,空字符串可以使用反引號指定:

`"`" 
+0

很好的建議。奇怪的是,當我執行該命令時,我沒有遇到任何錯誤,但它似乎沒有做任何事情。 當我使用非空字符串時,它將其設置爲該字符串。但空字符串不起作用。我認爲這可能是取消設置配置設置的語法。 –

+0

@KlasMellbourn:適合我,git 2.7.0在cygwin中。 – choroba

+0

好的,我默認使用Powershell。發現:它在PowerShell中沒有做任何事情。在cmd.exe中,它將代理設置爲「'。在bash中(與git一起),它被正確設置爲空。 –

相關問題