svn 迁移到git

admin10个月前笔记93
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 [email protected]:/data/gitdata/yanziios.git
12.推送全部的分支和标签信息到git服务器上
git push origin master --tags

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


相关文章

Web静态资源加速

Web静态资源加速

1.引言在互联网应用中WEB页面的打开速度,在用户体验中占用极其重要的地位,根据HubSpot所做研究的显示:如果Yahoo将页面加载时间减少0.4秒,流量可能会增加9%;页面慢1秒可能会使亚马逊每年...

如何实现文件自动备份并上传到FTP服务器

如何实现文件自动备份并上传到FTP服务器

实现文件的异地备份,其具体措施是提前部署好FTP服务器,然后将需要备份到FTP服务器的所有文件进行压缩并移动到其他文件夹下,最后上传到FTP服务器保存。确保本地和FTP服务端各存一份,实现数据异地备份...

linux ssh、sftp、scp命令远程传输文件

linux ssh、sftp、scp命令远程传输文件

以下实验数据都是手工亲测,非拷贝而来,所以真实可靠,也是我在工作当中经常用到的一些命令,分享出来,大家一块学习。系统操作环境Centos7.3 64 *2,两台机器都在公网IP地址分别是A:223.5...

OAuth 2.0 的一个简单解释,一看就懂

OAuth 2.0 的一个简单解释,一看就懂

OAuth 2.0OAuth 2.0 是目前最流行的授权机制,用来授权第三方应用,获取用户数据。这个标准比较抽象,使用了很多术语,初学者不容易理解。其实说起来并不复杂,下面我就通过一个简单的类比,帮助...

MySQL延迟问题和数据刷盘

MySQL延迟问题和数据刷盘

一、MySQL复制流程官方文档流程如下:MySQL延迟问题和数据刷盘策略1、绝对的延时,相对的同步2、纯写操作,线上标准配置下,从库压力大于主库,最起码从库有relaylog的写入。二、MySQL延迟...

linux下vsftpd系统虚拟帐户使用

linux下vsftpd系统虚拟帐户使用

一、需求1、系统帐号和虚拟帐号这是一个相当复杂的需求,系统上一些采集系统走的ftp进行采集的。历史积累下来的,最早都是直接在OS上创建系统帐号再ftp登录(shell大部分设置为/bin/false或...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。