alias git-proxy='git -c "http.proxy=address:port"'
4
如果您使用的是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 $*
//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
17 回答
要使用的命令:
将
proxyuser
更改为您的代理用户将
proxypwd
更改为您的代理密码将
proxy.server.com
更改为代理服务器的URL将
8080
更改为代理服务器上配置的代理端口如果您决定随时重置此代理并在没有代理的情况下工作:
要使用的命令:
最后,检查当前设置的代理:
这对我来说很有用,在企业防火墙后面的Windows XP中 .
我没有安装任何本地代理或除了git v1.771之外的任何其他软件http://code.google.com/p/msysgit/downloads/list?can=3
proxyuser =我的IT部门分配的代理用户,在我的情况下,它是我用来登录我的PC的同一个Windows用户,即Active Directory用户
proxypwd =我的代理用户的密码
proxy.server.com:8080 =代理名称和端口,我从控制面板,Internet选项,连接,Lan设置按钮,代理服务器部分内的高级按钮获取它,使用第一(http)行上的服务器名称和端口 .
mygithubuser =我用来登录github.com的用户
mygithubpwd =我的github.com用户的密码
repoUser =回购的用户所有者
repoName =回购的名称
设置名为
http_proxy
的系统变量,其值为ProxyServer:Port
. 这是最简单的解决方案 . 分别使用https_proxy
作为daefu在评论中指出 .设置gitproxy(作为sleske提及)是另一种选择,但这需要一个“命令”,这不像上面的解决方案那么简单 .
参考文献:http://bardofschool.blogspot.com/2008/11/use-git-behind-proxy.html
如果配置代理服务器的命令行方式不起作用,您可以只编辑.gitconfig(在配置文件的根目录中,这可能隐藏在C:\ Documents and Settings和某些网络驱动器上)并添加此:
但是,YMMV仅涵盖了命令行配置的第一步 . 您可能还必须编辑系统git配置,我不知道它们隐藏在哪里 .
作为使用
git config --global http.proxy address:port
的替代方法,您可以在命令行上设置代理:优点是代理不是持久设置的 . 在Bash下你可以设置一个别名:
如果您使用的是ubuntu,请执行以下操作...
第1步:安装开瓶器
第2步:编写一个名为git-proxy.sh的脚本并添加以下内容
第3步:使脚本可执行
步骤4:通过设置环境变量为GIT设置代理命令
现在使用git命令,例如
由于Windows中有多个
.gitconfig
文件,因此面临同样的问题,按照以下步骤修复相同的问题:Step 1: 打开Git BASH
Step 2: 查找
.gitconfig
,执行以下命令:Step 3: 复制
.gitconfig
中的以下内容:尝试将以下内容放到〜/ .gitconfig文件中:
对于git协议(git:// ...),安装socat并编写如下脚本:
使其可执行,将其放在您的路径中,并在
~/.gitconfig
中设置core.gitproxy
到该脚本的名称 .除了这些答案,我发现有助于考虑这两点:
可能需要强制执行身份验证方案:
此外,通常使用NTLM身份验证架构,可能需要明确地提供AD域 .
在git bash中:
并相应地更新http.proxy:
无论如何,通过添加CURL日志可以帮助调查:
I work on Windows XP at work(state/gov), so I did my research and found this here and it worked for me. Hope this helps :)
The http_proxy Environment Variable
如果使用代理服务器或防火墙,则可能需要设置http_proxy环境变量才能从命令行访问某些URL . 示例:为perl安装ppm或在linux中应用rpm,更新ubuntu
使用代理服务器的主机名或IP地址设置http_proxy变量:http_proxy = http:// [proxy.example.org]
如果代理服务器需要用户名和密码,请按以下格式包含它们:http_proxy = http:// [username:password@proxy.example.org]
如果代理服务器使用80以外的端口,请包含端口号:http_proxy = http:// [username:password@proxy.example.org:8080]
Windows XP
Linux, Solaris or HP-UX
使用特定于shell的命令设置http_proxy环境变量(例如,设置或导出) . 要使此更改持久化,请将该命令添加到shell的相应配置文件中 . 例如,在bash中,将以下行添加到.bash_profile或.bashrc文件中:
如果你有安装和配置tsocks或proxychains,即可
要么
为了缩短它,我为
proxychains
创建了一个符号链接/usr/bin/p
,所以我可以像这样使用它我可以用它代理任何命令,
顺便说一句,proxychains很长一段时间没有更新,你可能想试试proxychians-ng
Setting git proxy on terminal
如果
您不希望手动逐个为每个git项目设置代理
总是希望为所有项目使用相同的代理
全局设置一次
如果你只想为一个git项目设置代理(在某些情况下你可能根本不想使用相同的代理或任何代理来进行某些git连接)
如果要显示当前代理设置
如果要全局删除代理
如果你只想删除一个git root的代理
对于Windows用户:如果
git config
或set http_proxy=
不起作用,this answer可能会有所帮助:用
http://
替换git存储库的git://
协议 . 注意,无论如何,你必须首先设置http_proxy
.这是代理设置
在不知疲倦地尝试此页面上的每个解决方案后,我的工作是使用和SSH密钥!
打开Git Bash
$ ssh-keygen.exe -t rsa -C
打开你的Git提供者(Github,Bitbucket等)
添加将id_rsa.pub文件内容复制到Git提供程序的输入页面(检查您的 Profiles )
我遵循了这里推荐的大部分答案 . 首先我得到以下错误:
然后我尝试了@Salim Hamidi的以下命令
但我收到以下错误:
如果代理服务器无法验证SSL证书,则可能会发生这种情况 . 因此,我们希望确保ssl验证已关闭(不推荐用于非受信任的站点),因此我完成了以下步骤,这些步骤是@Arpit推荐的,但稍有更改:
1.首先确保删除任何以前的代理设置:
2.然后列出并获取gitconfig内容
3.最后更新gitconfig文件的内容,如下所示: