在学习SVN的过程中,你可能会遇到SVN中使用Git问题,本节就主要讲解一下SVN中使用Git问题,包括开始和初始化代码库等内容,希望通过本节的学习大家更够对SVN中使用Git问题有更加深刻的认识。
如果正在使用svn,打算换到git,又暂时不想放弃已有的svn代码库,可以选择git-svn。说一说我自己从svn到git的经验吧。
开始
安装最新版本的git,从git1.5.3以后支持git-svn,git和svn的配合就要借助这个功能。
安装完毕后要做一些简单的配置。最直接的做法就是创建修改~/.gitconfig。下面是我的.gitconfig
- [user]
- name=RobinLu
- email=---@gmail.com
- [color]
- diff=auto
- status=auto
- branch=auto
- [alias]
- st=status
- rb=svnrebase
- ci=commit-a
- co=checkout[user]
部分标示出使用者的身份,你提交的代码会自动引用这一身份信息。[color]设置命令输出的颜色。[alias]部分可以简化一些常用命令,比如在这里将gitstatus简化为gitst。
初始化代码库
SVN中使用Git时要初始化代码库。首先用git-svn来初始化本地的代码库(repository)
gitsvn
clone-s
svn-repository-urlsvn-repository-url部分使用svn代码库的url。如果要从trunk目录或者某个branch目录里checkout,要把-s换成-T、-b等选项。具体参看mangit-svn。这个命令时间比较长,因为需要同步所有的提交历史,还好只此一次,以后不会这么慢了。做完这一步,在本地就有了一个完整的代码库,包括所有commit的历史和log,已经可以开始用它来进行开发工作了。
不过,在开始开发之前,最好先做一次垃圾搜集:gitgc
它对代码库的信息进行垃圾搜集和压缩,最明显的作用就是减小磁盘占用空间。第一次做效果尤其明显。
你可以检查一下代码库的状态:
gitstatus现在应该在一个叫”master”的分支(branch)上。
用这个命令来显示出所有的分支(branch):gitbranch-a
master前有一个*号,代表你现在所处的分支,另外还有一个分支叫trunk,它是一个远程分支(remotebranch),对应的是远程svn代码库。master实际上是trunk的一个本地分支。
接下来,需要配置忽略文件,让git忽略一些目录中不希望加入代码库的文件,类似svnpropsetsvn:ignore。全局有效的忽略文件列表可以添加在./.git/info/exclude文件中。比如我需要忽略所有vi产生的swp文件:
.*.swp对于和目录有关的忽略文件设置可以在该目录下创建.gitignore,然后加入需要忽略的内容,比如我希望忽略根目录下的log,tmp等目录,可以直接在根目录下的.gitignore中加入:log,tmp
请期待下节SVN中使用Git问题介绍。
【编辑推荐】
- Git-SVN配合使用之简明教程
- VS2008+SVN插件使用前沿报道
- 深度剖析:Subversion服务器安装配置
- MyEclipse中SVN安装配置新手指南
- Http访问SVN服务器的配置方法专家指导