1,CVS
CVS使用代理非常麻烦,似乎不能用http代理(如果偶错了请提醒),而socks代理相当难找。好在这个东东已经慢慢变成了昨日黄花,我们不讨论它。
2,SVN
SVN比较方便,编辑~/.subversion/servers文件即可:
[global]
http-proxy-host = <代理的ip或域名>
http-proxy-port = <代理端口>
http-proxy-username = <用户名,如果需要的话>
http-proxy-password = <密码,如果需要的话>
3,HG
HG更简单,因为它使用的是http协议,一个命令解决:
export http_proxy=http://<用户名>:<密码>@<ip>:<端口>
4,Git
Git可以使用两种协议,git协议和http,如果是后者,那么办法跟HG一样,如果是git,比较麻烦,但也不是不可解决:
先去下载一个协议转换小工具:http://www.meadowy.org/~gotoh/ssh/connect.c
编译之:gcc -o connect connect.c
将生成的connect放到可执行文件路径中,如/usr/bin
然后创建一个使用代理的脚本,假设是http-proxy-gw,注意加上可执行属性,内容如下:
#!/bin/sh
# Filename: ~/bin/http-proxy-gw
# This script connects to an HTTP proxy using connect.c
connect -H http://yourproxyaddress:proxyport $@
最后,配置git:
git config --global core.gitproxy "http-proxy-gw for xxx.yyy"
后面的xxx.yyy是域名后缀,比如,下载linux源码就可以是设置为kernel.org
在实验室想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 bergwolf@proxy.bupt.edu.cn:
remote: Counting objects: 24006, done.
remote: Compressing objects: 100% (4701/4701), done.
ceiving objects: 1% (241/24006), 43.99 KiB | 56 KiB/s
相关推荐
SVN(Subversion)、HG(Mercurial)、GIT是三种广泛使用的版本控制系统,它们各自有不同的设计理念和命令集,尽管它们在执行相同或相似功能时具有一定的相似性,但直接命令对应关系并不严格存在。下面将详细介绍...
ubuntu下RabbitVCS安装方法。 适用于SVN、GIT、Hg 的客户端工具。 集成右键菜单
Vcs阅读器 这是一个Java(和JVM语言)库,...从此处下载(wget,curl等) Maven: < groupId>org.vcsreader < artifactId>vcsreader < version>1.0.0 Gradle: repositories { mavenCentral() } dependenci
`git-prompt`项目正是一款专为Git、Subversion(SVN)和Mercurial(HG)用户设计的Bash提示符模块,它能够提供丰富的信息,帮助开发者在终端中实时了解版本控制系统的状态。 标题“linux-gitprompt-GITSVN和HG模块...
│ ├── git.png │ ├── hg.png │ ├── svn.svg │ └── vcs.txt ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── README.md ├── scripts │ ├── install.sh │ └── uninstall...
- **分布式版本控制系统**:如`Git`、`Mercurial`(Hg)、`Bazaar`或`Darcs`等,每个开发者的工作站上都是一个完整的版本库,包括完整的历史记录。这种模式非常适合需要频繁交换代码的团队,同时具有更好的安全性。 ...
- **分布式版本控制系统**:如Git、Mercurial (HG)。 #### 二、本地版本控制系统 1. **特点**: - 简单易用,许多操作系统内建支持。 - 适用于文本类型的文件管理,如系统配置文件。 - 缺乏远程操作能力,不...
vc.vim 用于Subversion(svn),GIT,HG和BZR存储库的VIM(VIM 7及更高版本)插件。 支持浏览存储库,工作副本,书签。 自动完成命令选项,文件,目录,回购网址注意:svnj.vim用户,将所有设置从svnj_替换为vc_ ##...
- **迁移Mercurial仓库**:使用`hg-fast-export`工具将Hg仓库转换为Git仓库。 ##### 9.3 总结 本章介绍了如何将其他版本控制系统(如SVN、Mercurial)的仓库迁移到Git中。 #### 十、Git内部机制 ##### 10.1 ...
Git在资源管理上表现优异,以Django项目为例,Git的克隆版本相比其他版本控制系统(如bzr、hg、svn)占用空间更小,但同时包含了完整的项目历史版本,而不仅仅是最后一个版本。 #### 快照而非变更集 Git的另一个...
Unfuddle则提供200MB的免费空间,支持SVN和Git,适用于更小规模的项目。Google Code曾不支持Hg,但现在已添加了对Hg的支持,对于开源项目非常友好。 安装TortoiseHg后,可以通过设置“LANGUAGE”环境变量为“zh_CN...
Bash提示版本控制状态 在bash提示中显示 , 和工作树的状态作为环境信息。 安装 将放在某个地方,然后在您的.bashrc添加: if [ -f /path/to/bash-prompt-vcs.bash ] ; then ....fi 这将定义函数bpvcs_bash_prompt&#...
相比于集中式的版本控制系统如 SVN 或 HG,Git 提供了更高的灵活性和效率。在 Git 中,每次修改都会形成一个新的提交(commit),这些提交存储在本地仓库中,可以随时回溯到任何历史状态。 二、为什么选择 Git 1. ...
集中式版本控制系统的代表有CVS和SVN,而Git和Mercurial(Hg)属于分布式版本控制系统。分布式版本控制系统的特点是简单易用、功能强大,且具有良好的操作系统的支持。 Git的官方网址是***,其中还推荐了两本学习...
在选择使用MacHg时,用户应了解Mercurial的基础知识,包括它的分布式特性、版本管理的核心概念以及与其他版本控制系统(如Git或SVN)的区别。 总的来说,MacHg为Mac用户提供了一个便捷的Mercurial版本控制工具,...
除了Mercurial,TortoiseHg还能够与其他版本控制系统(VCS)协同工作,例如与Perforce、Subversion(SVN)和Git等系统的集成。这些集成可以帮助在不同VCS系统间转移代码,并使跨系统的工作流程变得可行。 最后,...
SourceTree是Windows和Mac OS X下免费的Git和Hg客户端,支持创建、克隆、提交、push、pull 和合并等操作。
- **与Subversion (SVN) 比较**:SVN也是集中式的版本控制系统,虽然比CVS先进,但在速度、灵活性等方面不如Git。此外,Git的分支管理更为灵活便捷。 - **与Mercurial (Hg) 比较**:Mercurial也是一款分布式版本控制...
SourceTree是一款免费的、跨平台的Git和Hg图形化客户端,能够简化Git的日常操作,提高开发效率。 ##### 配置客户端密钥 - 打开SourceTree,进入“工具”菜单下的“选项”。 - 在弹出的对话框中配置SSH密钥路径或...
常见的SCM工具有Git、SVN(Subversion)、Mercurial等。以下我们将详细探讨Linux SCM命令及其相关知识。 1. Git: Git是最流行的分布式SCM工具之一,由Linus Torvalds创建。Git命令行操作主要包括: - `git init`...