我是git的新手,並且有一個我希望能夠偶爾導入到git存儲庫(用於部署)的Subversion存儲庫。所以我想用svn來執行大部分的更新,但是想看看把它推到git上的最好方法是什麼(只是默認/主分支)。將svn分支導入git
3
A
回答
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是一個很好的備忘單。