良许Linux教程网 干货合集 Linux下SVN迁移至Git具体方法

Linux下SVN迁移至Git具体方法

随着项目越来越大,原有SVN已经很难支撑现有工程(集中式管理,服务器压力大,分支主干切换麻烦)。所以,决定将SVN切换成Git(分布式开发,快照式数据,速度快,主干分支切换方便),下面为大家分享一下Linux下SVN迁移至Git具体方法。

Linux下SVN迁移至Git具体方法

1.物理环境

Git–server    Centos5.8    192.168.1.245
Svn–server    Centos5.8    192.168.1.108  

2.建立SVN用户到git用户的映射文件

建立SVN用户到git用户的映射文件,文件格式如下:

cat /tmp/userinfo.txt
david=sfzhang
yanni=yanni

3.克隆一个git版本库

通过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
Date:   Fri May 10 10:27:50 2013 +0000

5.列出当前所有的分支

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/

10.将yanziios.git的属主修改为git用户

chown git yanziios.git -R
ls -l yanziios.git/
total 64
drwxr-xr-x 2 git root 4096 May 22 12:25 branches
-rw-r--r-- 1 git root   66 May 22 12:25 config
-rw-r--r-- 1 git root   73 May 22 12:25 description
-rw-r--r-- 1 git root   23 May 22 12:25 HEAD
drwxr-xr-x 2 git root 4096 May 22 12:25 hooks
drwxr-xr-x 2 git root 4096 May 22 12:25 info
drwxr-xr-x 4 git root 4096 May 22 12:25 objects
drwxr-xr-x 4 git root 4096 May 22 12:25 refs

11.添加远程git服务器地址

git remote add origin git@192.168.1.245:/data/gitdata/yanziios.git

12.推送全部的分支和标签信息到git服务器上

git push origin master --tags

之后就是SVN迁移到Git测试,在客户端用SourceTree工具克隆一个Git服务端仓库yanziios.git,在SourceTree图形界面里面可以看到git用户提交的Graph信息,描述信息(Description),日期,作者和版本号等信息。

以上就是良许教程网为各位朋友分享的Linux系统相关内容。想要了解更多Linux相关知识记得关注公众号“良许Linux”,或扫描下方二维码进行关注,更多干货等着你 !

img
本文由 良许Linux教程网 发布,可自由转载、引用,但需署名作者且注明文章出处。如转载至微信公众号,请在文末添加作者公众号二维码。
良许

作者: 良许

良许,世界500强企业Linux开发工程师,公众号【良许Linux】的作者,全网拥有超30W粉丝。个人标签:创业者,CSDN学院讲师,副业达人,流量玩家,摄影爱好者。
上一篇
下一篇

发表评论

联系我们

联系我们

公众号:良许Linux

在线咨询: QQ交谈

邮箱: yychuyu@163.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

关注微博
返回顶部