知识屋:更实用的电脑技术知识网站
所在位置:首页 > 操作系统 > linux

subversion转git以及git仓库合并

发布时间:2014-09-05 15:27:58作者:知识屋

公司决定转向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

大功告成。

(免责声明:文章内容如涉及作品内容、版权和其它问题,请及时与我们联系,我们将在第一时间删除内容,文章内容仅供参考)
收藏

相关知识

软件推荐

更多 >

游戏推荐

更多 >

精选栏目

热门推荐

猜你喜欢