git代理设置及下载方法

在实验室想git点东东下来,折腾了会,算是基本可用了吧
man git-config 可以看到git支持的代理是依赖别的程序的
这里我使用的是一个别人写的代理小程序,见附件
配置步骤如下:
 
1. gcc -o connect connect.c
   mv connect ~/bin
2. 设置一个wrapper
   echo "/home/gigi/bin/connect -H proxy.bupt.edu.cn:8080 $@" >> ~/bin/proxy
   chmod +x ~/bin/proxy
这里我使用的是学校的代理 proxy.bupt.edu.cn,端口是8080
connect这个小程序还支持socket代理,用法是connect -S host:port
3. echo "export CONNECT_USER=bergwolf" >> .bashrc
   echo "export GIT_PROXY_COMMAND=proxy" >> .bashrc
connect程序从环境变量CONNECT_USER和CONNECT_PASSWORD
中读取用户名和密码,如果密码没有设置,在连接时会要求输入
GIT_PROXY_COMMAND是git默认使用的代理程序,也可以在.git/config中设置
 
到此git代理设置就完成了,试用一下:
[gigi-Ubuntu:bin]$git clone git://git.kernel.org/pub/scm/fs/ext2/e2fsprogs.git  
Initialized empty Git repository in /home/gigi/bin/e2fsprogs/.git/
Enter proxy authentication password for [email protected]:  
remote: Counting objects: 24006, done.
remote: Compressing objects: 100% (4701/4701), done.
ceiving objects:   1% (241/24006), 43.99 KiB | 56 KiB/s  
 
bravo :-)

##############

在只提供http代理的局域网内如何用git连接远程服务器?

git使用了curl,因此设置了curl的代理服务器就可以让git使用代理了,有两种方法:

1. export http_proxy=”10.167.129.20:8080″

2. 编辑配置curl配置文件:~/.curlrc,把代理地址写进去  ##这个不行,会报错,不用写。直接往下走

然后尝试下面几种方法,以下载util-linux-ng为例:

1. git-clone git://git.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git

结果:失败,因为这样不是通过http连接(注意开头是git://)。

2. git-clone http://git.kernel.org/?p=utils/util-linux-ng/util-linux-ng.git

结果:连接成功,但是下载了一点就中断。

3. git-clone http://www.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git

结果:结果同2。

4. git-clone http://www1.kernel.org/pub/scm/utils/util-linux-ng/util-linux-ng.git

结果:成功。

将www改成www1就行了,这应该跟mirroring有关,不使用镜像,直接选择一个真正的服务器,就成功了。 2的失败原因跟3的原因应该是一样的。

要下载linus的kernel tree的话,就可以这样了:

git-clone http://www1.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6.git


 

 原文地址 http://newbupt.org/wForum/disparticle.php?boardName=Linux&ID=20184&start=0&listType=1

你可能感兴趣的:(git,user,command,服务器,Authentication,wrapper)