1

现在我需要克隆一些存储库,但是它们被禁止了,然后我从https://www.kernel.org/pub/software/scm/git/docs/git-config.html读了一些话:

http.proxy

覆盖 HTTP 代理,通常使用 http_proxy、https_proxy 和 all_proxy 环境变量进行配置(请参阅 curl(1))。这可以在每个远程的基础上被覆盖;见远程..代理

然后我设置了三个 env virables:

export all_proxy="domain.com:8888"
export http_proxy="domain.com:8888"
export https_proxy="domain.com:8888"

但它没有用,然后我将它们重置为“”,然后我设置 http.proxy 使用这个:

git config --local http.proxy "domain.com"

它有效。但我不应该设置全局,因为可能有其他人正在克隆但他们不应该使用代理,为什么通过设置三个 env virables 不起作用?

4

2 回答 2

1

要么是因为您将环境设置为domain.com:8888并且没有在 git 配置中指定端口,要么是因为您需要将这些环境变量大写。

你也意识到,你可以为每个 repo 设置 git vars?所以你可以这样做:

git init myrepo
cd myrepo
git config http.proxy "domain.com"
git remote add origin myremote
git fetch --all
git checkout -B master origin/master

然后只有这个 repo 才是你的代理。

于 2013-06-28T03:58:41.877 回答
1

您可以(至少现在)还可以将代理设置与克隆命令一起传递:

git clone https://github.com/user/repository.git --config "http.proxy=host:port"
于 2015-05-09T17:23:45.590 回答