1.先建立SVN账号与gitlab账号直接的对应文档users.txt,并放入本地仓库的文件夹中
schacon = Scott Chacon <schacon@geemail.com>
selse = Someo Nelse <selse@geemail.com>
2.Clone SVN项目至本地Git
git svn clone http://my-project.googlecode.com/svn/ --authors-file=users.txt --no-metadata -s my_project
参数–no-metadata表示阻止git导出SVN包含的一些无用信息
参数–authors-file表示SVN账号映射到git账号文件,所有svn作者都要做映射
参数–s表示原先是标准的svn目录,包括trunk,tags,branches
3.将SVN tag转成Git tag
第一步,你应当清理 git svn 设置的奇怪的引用。 首先移动标签,这样它们就是标签而不是奇怪的远程引用,然后你会移动剩余的分支这样它们就是本地的了。
为了将标签变为合适的 Git 标签,运行
$ cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/
$ rm -Rf .git/refs/remotes/origin/tags
这会使原来在 remotes/origin/tags/ 里的远程分支引用变成真正的(轻量)标签。
接下来,将 refs/remotes 下剩余的引用移动为本地分支:
$ cp -Rf .git/refs/remotes/* .git/refs/heads/
$ rm -Rf .git/refs/remotes
4.Push至Git公共库
可以通过以下命令将本地Git项目Push至远端Git公共库:
git remote add origin http://my-project.googlecode.git
推送本地所有branch至Git公共库
git push -u origin --all
推送本地所有tag至Git公共库
git push -u origin --tags
网友评论