如何让Git使用代理服务器?
我需要从Git服务器签出代码,但它每次都显示“请求超时”。我该怎么解决这个问题呢?
或者如何设置代理服务器?
如何让Git使用代理服务器?
我需要从Git服务器签出代码,但它每次都显示“请求超时”。我该怎么解决这个问题呢?
或者如何设置代理服务器?
当前回答
因为在windows中有多个.gitconfig文件而面临同样的问题,遵循以下步骤来修复相同的问题:
步骤1:打开Git BASH
步骤2:查找.gitconfig,执行以下命令:
git config --list --global --show-origin
步骤3:在.gitconfig中复制以下内容:
[http]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[https]
proxy = http://YOUR_PROXY_USERNAME:YOUR_PROXY_PASSWORD@YOUR.PROXY.SERVER:YOUR.PROXY.SERVER.PORT
sslverify = false
[url "http://github.com/"]
insteadOf = git://github.com/
[user]
name = Arpit Aggarwal
email = aggarwalarpit.89@gmail.com
其他回答
对于windows用户:如果git配置或设置http_proxy=不起作用,这个答案可能会有帮助:
将git存储库的git://协议替换为http://.注意,无论如何,你必须先设置http_proxy。
如果你正在使用ubuntu,那么执行以下操作…
步骤1:安装开瓶器
$ sudo apt-get install corkscrew
步骤2:编写名为git-proxy.sh的脚本,并添加以下内容
#!/bin/sh
exec corkscrew <name of proxy server> <port> $*
# <name_of_proxy_server> and <port> are the ip address and port of the server
# e.g. exec corkscrew 192.168.0.1 808 $*
步骤3:使脚本可执行
$ chmod +x git-proxy.sh
步骤4:通过设置环境变量为GIT设置代理命令
$ export GIT_PROXY_COMMAND="/<path>/git-proxy.sh"
现在使用git命令,例如
git clone git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
在终端上设置git代理
if
您不希望为每个git项目逐个手动设置代理 始终希望对所有项目使用相同的代理
全局设置一次
git config --global http.proxy username:password@proxy_url:proxy_port
git config --global https.proxy username:password@proxy_url:proxy_port
如果您只想为一个git项目设置代理 (在某些情况下,对于某些git连接,你可能不想使用相同的代理或任何代理)
//go to project root
cd /bla_bla/project_root
//set proxy for both http and https
git config http.proxy username:password@proxy_url:proxy_port
git config https.proxy username:password@proxy_url:proxy_port
如果要显示当前代理设置
git config --list
如果要全局删除代理
git config --global --unset http.proxy
git config --global --unset https.proxy
如果您只想删除一个git根的代理
//go to project root
cd /bla-bla/project_root
git config --unset http.proxy
git config --unset https.proxy
作为使用git配置的替代方案——global http。代理地址:端口,可以在命令行设置代理:
git -c "http.proxy=address:port" clone https://...
优点是代理不需要持久设置。在Bash下你可以设置一个别名:
alias git-proxy='git -c "http.proxy=address:port"'
如果您已经安装和配置了tsocks或proxychains,则可以
$ tsocks git clone <you_repository>
or
$ proxychains git clone <you_repository>
为了使它更短,我为proxychains创建了一个符号link /usr/bin/p,所以我可以像这样使用它
p git clone <you_repository>
我可以用它来代理任何命令
p <cmd-need-be-proxied>
顺便说一下,proxychains很长一段时间没有更新,你可能想试试proxychians-ng