频道栏目
首页 > 资讯 > Linux > 正文

subversion转git以及git仓库合并

12-12-16        来源:[db:作者]  
收藏   我要投稿
公司决定转向github,所以今天遇到的问题是要把两个subversion仓库合并到一个github仓库中。

subversion转git这个问题很容易,github推荐使用svn2git这个脚本。官方网站上写出了详细的安装方法,如下:

$ sudo apt-get install git-core git-svn ruby rubygems
$ sudo gem install svn2git

然后建立两个子目录,存放转换后的两个subversion仓库:

$ mkdir tmp && cd tmp 
$ mkdir projectA projectB

开始转换:

[charlee@ubuntu:~/tmp]$ cd projectA
[charlee@ubuntu:~/tmp/projectA]$ svn2git http://svn.example.com/projectA        # 由于是标准目录结构,这里不需要指定trunk分支
[charlee@ubuntu:~/tmp/projectA]$ cd ../projectB
[charlee@ubuntu:~/tmp/projectB]$ svn2git http://svn.example.com/projectB
[charlee@ubuntu:~/tmp]$ cd ..

这样就得到了projectA和projectB两个git仓库。接下来用stackoverflow上提到git-stitch-repo将这两个仓库合并成一个。首先安装git-stitch-repo:

$ tar xzvf Git-FastExport-0.07.tar.gz
$ make
$ sudo make install

[charlee@ubuntu:~/tmp]$ git clone https://github.com/charlee/project.git
[charlee@ubuntu:~/tmp]$ cd project
[charlee@ubuntu:~/tmp/project]$ git-stitch-repo ../projectA:projectA ../proejctB:projectB | git fast-import
[charlee@ubuntu:~/tmp/project]$ git checkout master-A
[charlee@ubuntu:~/tmp/project]$ git checkout master-B
[charlee@ubuntu:~/tmp/project]$ git checkout master
[charlee@ubuntu:~/tmp/project]$ git branch -d master-A master-B

然后扔到github上:

$ git push -u origin master

大功告成。

相关TAG标签
上一篇:Firefox更改缓存目录
下一篇:Cygwin使用Vim插件管理器Vundle错误error setting certificate verify locations解决
相关文章
热门专题推荐 vmware win7激活工具 win10激活工具 excel word office激活 小马激活工具 重装系统 数据恢复 u盘启动工具
图文推荐
文章
推荐
热门新闻

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站