2009-02-05 118 views
3

我是git的新手,並且有一個我希望能夠偶爾導入到git存儲庫(用於部署)的Subversion存儲庫。所以我想用svn來執行大部分的更新,但是想看看把它推到git上的最好方法是什麼(只是默認/主分支)。將svn分支導入git

回答

5

我知道你只想導入你的svn倉庫的master/trunk分支,但我想提一下svn2git爲了將你的svn導入到git倉庫中。

勝於git svn clone因爲如果你有這樣的代碼中的svn:

trunk 
    ... 
    branches 
    1.x 
    2.x 
    tags 
    1.0.0 
    1.0.1 
    1.0.2 
    1.1.0 
    2.0.0 

git-svn將通過提交歷史建立一個新的git回購。
將導入所有分支和標籤作爲遠程svn分支,而你真正想要的是git-native本地分支和git標籤對象
所以導入此項目後,您將獲得:

$ git branch 
    * master 
    $ git branch -a 
    * master 
    1.x 
    2.x 
    tags/1.0.0 
    tags/1.0.1 
    tags/1.0.2 
    tags/1.1.0 
    tags/2.0.0 
    trunk 
    $ git tag -l 
    [ empty ] 

svn2git與您的項目完成後,你會得到這個代替:

$ git branch 
    * master 
    1.x 
    2.x 
    $ git tag -l 
    1.0.0 
    1.0.1 
    1.0.2 
    1.1.0 
    2.0.0 

最後,確保主機的HEAD與svn repo的當前主幹相同。

3

爲什麼不只是在你的工作站上工作?這將是最直接的。

  • git svn clone將抓住您的SVN存儲庫並將修訂版導入到新的git存儲庫中。
  • 如果您需要推送到遠程git存儲庫進行部署,則git remote add將爲您添加它。
  • 如果需要推回SVN倉庫,然後git svn dcommit
1

一言以蔽之:

mkdir my_blog_tmp 
cd my_blog_tmp 
git-svn init http://code.yoursite.net/my_blog/trunk/ --no-metadata 
git config svn.authorsfile ~/Desktop/users.txt 
git-svn fetch 

,並恭喜您加入我們控釋片!對於(ex)svn用戶來說,Here是一個很好的備忘單。