由于Git分布式体系结构,用户完全可以脱离Git服务端在本地查看,编辑和提交代码,现在公司Leader要求将SVN上面的数据迁移到Git上面,通过git svn命令可以将SVN里面的数据迁移到Git上面。
1.物理环境
Git-server Centos5.8 192.168.1.245
Svn-server Centos5.8 192.168.1.108
2.建立SVN用户到git用户的映射文件,文件格式如下:
cat /tmp/userinfo.txt david=sfzhang<shifeng_zhang88@163.com> yanni=yanni<yanni_liu88@163.com>
3.通过git svn clone克隆一个git版本库,SVN里面包含trunk,branches和tags。
git svn clone svn://192.168.1.108:9999/yanzi/ --no-metadata --authors-file=userinfo.txt --trunk=trunkmobile --tags=tags --branches=branches --ignore-refs=refs/remotes/yanzi-.* yanzi
参数--no-metadata表示阻止git导出SVN包含的一些无用信息
参数--authors-file表示SVN账号映射到git账号文件,所有svn作者都要做映射
参数--trunkmobile表示主开发项目
参数--branches表示分支项目,--ignore-refs表示不包含后面的分支项目
参数yanzi表示git项目名称
4.通过git log 查看项目提交的历史记录,包括作者,日照,和提交注释信息等。
cd yanzi git log commit 3c4907782804096ea3fa3fb5419dcce610e56f1f Author: david <shifeng_zhang88@163.com> Date: Fri May 10 10:27:50 2013 +0000
5.在git版本库里面tag都是branches(分支),首先列出当前所有的分支。
cd yanzi git branch -r tags/mobile_1.0.0 tags/mobile_1.0.1 trunk yanziios1.0.1-build-2223-branch-002
6.手动将branches分支转换为tags。
git tag mobile_1.0.0 tags/mobile_1.0.0 git tag mobile_1.0.1 tags/mobile_1.0.1
7.将多余的branches删除掉。
git branch -r -d tags/mobile_1.0.0 Deleted remote branch tags/mobile_1.0.0 (was d50002b). git branch -r -d tags/mobile_1.0.1 Deleted remote branch tags/mobile_1.0.1 (was e7b78a2).
8.再次列出当前的所有分支。
git branch -r trunk yanziios1.0.1-build-2223-branch-002
9.建立git仓库并初始化版本库。
mkdir -p /data/gitdata/yanziios.git cd /data/gitdata/yanziios.git/ git init --bare Initialized empty Git repository in /data/gitdata/yanziios.git/
以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索git clone
, git
, branch
, mobile
, 数据迁移
, git clone 命令
, svn 资源历史记录
, 分支
, git多账号登录
, tags
显示Git分支名称
svn数据迁移到git、svn 迁移到git、svn git 迁移、svn代码迁移到git、svn项目迁移到git,以便于您获取更多的相关知识。