随笔—SVN仓库转换为Git仓库

假设需要转换的SVN仓库地址为:https://tmp/svn

1、使用git svn clone命令开始转换

$ git svn clone https://tmp/svn -T trunk -b branches -t tags
#git svn clone会将整个SVN仓库导入到一个本地仓库中,
#-T trunk -b branches -t tags告诉Git,需要clone的SVN仓库的基本分支和命名法则
   #如SVN里的trunk,等同于Git里的master分支,整条选项可以使用-s代替
$ git svn clone https://tmp/svn -s   #此命令与上面的效果一样

2、Clone完成后,使用git show-ref命令查看git仓库的基本情况

$ git show-ref
f9e1af7a36109cdfb7934d2e9d9e7f7375609e43 refs/heads/master
f9e1af7a36109cdfb7934d2e9d9e7f7375609e43 refs/remotes/origin/HEAD
f9e1af7a36109cdfb7934d2e9d9e7f7375609e43 refs/remotes/origin/master
131ecb795ceb25ae7645b5eca041bad9c455f95b refs/remotes/origin/test

3、转换SVN仓库的svn:ignore属性到Git仓库的.gitignore文件

$ git svn create-ignore

4、 转换SVN的标签为Git标签

 $ cp -Rf .git/refs/remotes/tags/* .git/refs/tags/
 $ rm -Rf .git/refs/remotes/tags

5、 转换SVN的分支为Git分支

$ cp -Rf .git/refs/remotes/* .git/refs/heads/
$ rm -Rf .git/refs/remotes

6、最后把转换完成的本地Git仓库推送到Git服务器上

$ git remote add origin remote_address
$ git push origin master --all

SVN那边所有的标签和分支都可以变更到了Git服务器里了。

原创文章,作者:N21-沉舟,如若转载,请注明出处:http://www.178linux.com/21199

(0)
N21-沉舟N21-沉舟
上一篇 2016-07-04 11:28
下一篇 2016-07-04 11:29

相关推荐

  • 马哥教育网络班21期-第十周课程练习​

    1、请详细描述CentOS系统的启动流程(详细到每个过程系统做了哪些事情)流程顺序:POST(加电自检) –> BootSequence (BIOS) –> Bootloader(MBR) –> kernel(ramdisk) –> rootfs(只读方式) –> sw…

    Linux干货 2016-09-26
  • 高级文件系统管理2

    逻辑卷管理器(LVM),允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小。允许在多个物理设备间重新组织文件系统。其步骤大体如下:将设备指定为物理卷,用一个或者多个物理卷来创建一个卷组,物理卷你是用固定大小的物理区域(PE)来定义的,在物理卷上创建的逻辑卷是由物理区域组成,可以在逻辑卷上创建文件系统。 一、知识整理 1、LVM设备名:dm-#。 软链接…

    Linux干货 2016-09-13
  • git

    1.1 Git的安装 1.1.1 版本 # cat /etc/redhat-release CentOS release 6.8 (Final) # uname -r 2.6.32-642.4.2.el6.x86_64 # uname -m x86_64 1.1.2 安装 可以直接通过源码安装。先从Git官网下载源码,然后解压,…

    Linux干货 2016-10-31
  • 马哥教育网络班22期+第一周课程练习

    1、描述计算机的组成及其功能。 计算机由硬件系统、操作系统和应用软件所组成,没有安装任何软件的计算机称为裸机。 1.1、硬件系统由运算器、控制器、存储器、输入设备和输出设备五大部分组成,遵循冯、诺依曼原理。 控制器:读取分析指令,向其它部分发出控制信号,保证计算机按照预先规定的目标和步骤有条不紊地进行操作及处理。  运算器:对数据进行各种运算,例如…

    Linux干货 2016-08-22
  • Ansible 详细用法说明

    Ansible 一、概述 运维工具按需不需要有代理程序来划分的话分两类: agent(需要有代理工具):基于专用的agent程序完成管理功能,puppet, func, zabbix agentless(无须代理工具):基于ssh服务完成管理,ansible, fabric 二、简介   Ansible是一个简单的自动化运维管理工具,基于Python语言实现…

    2016-11-07
  • 基于Corosync + Pacemaker+DRBD实现MySQL高可用集群

    前言 在众多的高可用集群解决方案中,除了Heartbeat之外,Corosync也能提供类似于Heartbeat一样的功能,而且目前RedHat官方提供的高可用集群解决方案的程序包都以Corosync为主,所以今后Corosync会逐渐取代Heartbeat。本文带来的是基于Corosync + Pacemaker+DRBD的MySQL高可用集群解决方案。 …

    Linux干货 2015-06-12