一、從svn導(dǎo)出項(xiàng)目
使用命令(地址可以是svn開頭,也可以是http,https):
git svn clone svn://xxx/project/iOS/Common --authors-file=usres.txt(可選) --no-metadata -s commom
可選部分是svn用戶名與git用戶名的一個映射文件,如:
schacon = Scott Chacon <schacon@geemail.com>
我這里沒有做這一步,所以不多說。
'--no-metadata ':表示去掉與svn有關(guān)的信息。
'-s'表示所有trunk,branches,tags。如果不想要所有的,需要單獨(dú)指定,但不保證不會出問題。
執(zhí)行上面的命令后,我這邊報錯了,信息如下:
Using higher level of URL: svn://xxx/project/iOS/Common => svn://xxx/project
W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem has no item: File not found: revision 100, path '/iOS/Common'
W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.
This may take a while on large repositories
好像是說需要使用更高級別的URL,找不到/iOS/Common路徑,雖然不知道具體什么原因,但還是找到了解決方法,替換成如下命令:
git svn clone svn://120.78.128.162/project/iOS/Common --no-metadata commom
添加了'--no-minimize-url '參數(shù),意思是不縮小輸入地址。
去掉了-s,這里有個問題是加入-s有時候可以,有時候卻不行,不知道為什么。總之有問題兩個都嘗試一下。
至此,我們已經(jīng)從svn將項(xiàng)目導(dǎo)出了,而且是去除svn信息的。這里你會在'common'文件夾看到項(xiàng)目內(nèi)容。
二、將項(xiàng)目提交到git倉庫
前提:我的倉庫是公司私有的,且是直接在網(wǎng)站上已經(jīng)創(chuàng)建了的(且有了初始導(dǎo)入)。所以這里有點(diǎn)繞圈子了,如果沒有初始導(dǎo)入,那就很簡單了。直接add后push就可以了。
首先,我得先將git上的項(xiàng)目先clone下來(雖然里面就一個readMe文件),使用如下命令:
git clone http://xxx.git(會將git項(xiàng)目clone到當(dāng)前文件夾下)
然后將上面從svn導(dǎo)出的項(xiàng)目拖入git目錄下。
之后就是添加并提交了:
cd git目錄下
git add .
git commit -m "xxx"
git push
如果這種方式不成功,最便捷的方式是使用工具來操作??梢韵螺dsourceTree工具,直接將項(xiàng)目拉到倉庫里面,直接提交就好了。