svn迁移到git(保留提交记录)

各种原因我们可能会遇到迁移svn到git的情况,下面介绍迁移的过程

1、安装 git-svn

yum -y install git-svn

2、建立svn账号和git账号的映射关系

创建一个文件users.txt 内容如下

zhangsan=zhangsan<[email protected]>
jerry=jerry<[email protected]>
tom=tom<[email protected]>

3、将svn仓库中的内容转换为git仓库的内容

git svn clone http://svn.test.com/repos/erp/code/branch/mail --no-metadata --authors-file=users.txt mail_back

如果仓库历史悠久则执行时间会比较长,如果在svn服务器上操作可以将域名换成 127.0.0.1或localhost 会加快执行速度。命令的语法比较丰富,请参考其他文档。

执行完这个命令后会自动在当前路径创建一个本地的git仓库 mail_back,这就完成了svn仓库到本地git仓库的转换

下面介绍git仓库的推送

4、在远程git中创建仓库 mail_back

如果是github、gitlib、gogs,可以在web管理界面在后台创建一个仓库,也可以使用命令创建一个远程仓库,这里就不介绍了

5、关联git远程仓库

cd mail_back

git remote add origin http://git.test.com/erp/mail_back.git

git remote -v  查看关联情况,该命令会显示git推拉的git远程仓库地址

如果关联有误可以删除关联  git remote rm origin

6、push至远程git仓库

git push -u origin master

$ git push -u origin master
Enumerating objects: 1745, done.
Counting objects: 100% (1745/1745), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1492/1492), done.
Writing objects: 100% (1745/1745), 415.73 KiB | 1.46 MiB/s, done.
Total 1745 (delta 910), reused 0 (delta 0)
remote: 处理 delta 中: 100% (910/910), 完成.
To http://git.test.com/erp/mail_back.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

如果这条命令顺利执行成功,那么在远程git仓库就能看到提交的内容。 

如果命令提交失败,可以把整个本地仓库目录打包下来,到其他电脑上执行提交操作,比如可以在windows下使用gitbash进行提交。

本文内容到此结束。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章