subversion轉git以及git倉庫合并

來源:互聯網
上載者:User

公司決定轉向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

大功告成。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.