• SVN迁移至Git,保留commit提交记录


    一、背景

           随着项目越来越大,原有SVN已经很难支撑现有工程(集中式管理,服务器压力大,分支主干切换麻烦)。所以,决定将SVN切换成Git(分布式开发,快照式数据,速度快,主干分支切换方便)。现将SVN项目迁移至Git过程分享出来,希望能够对大家在操作迁移时提供帮助。

    二、准备

          1.git安装(此处不做说明)

          2.git账号配置

          任意磁盘目录->鼠标右键->Git Bash Here  进入git命令行,

          输入如下命令:

          git config --global user.name "XXX"

          git config --global user.email "XXX@mail.com"

          第一条设置gitlab下注册的用户名,第二条设置gitlab下注册的邮箱

          查看配置:

          git config --list

         3.svn账号与git账号映射,userinfo.txt:   (注:svn账号3在svn中有记录,但无git账号,提交记录中涉及到的svn账号需要全部列举出来,否则会报错。提交记录可以选择指定记录到最新记录,下面会有说明)

    三、导出SVN项目至本地

    1.在存放userinfo.txt的同级目录下新建一个文件夹

    2.鼠标右键->Git Bash Here  进入git命令行:

    git svn clone -r 282506:HEAD svnurl --no-metadata --authors-file=userinfo.txt randomfree

    注:此处的 -r 282506:HEAD 代表从svn的282506版本到最新版本的提交记录,避免从第一个版本拉取数据量过大,操作耗时高。svnurl是你的svn项目地址。如果需要拉取所有记录,可去除 -r 282506:HEAD 

    四、关联git远程仓库

    导入成功后,输入如下命令:

    cd randomfree

    git remote add origin giturl

    注:giturl是你的git项目地址

    查看关联情况:

    git remote -v

    如果关联有误,可以删除关联

    git remote rm origin

    五、提交记录至git

    提交记录之前,先拉取远程git项目文件(README.md),否则直接提交会报错

    git pull --rebase origin master

    拉取成功后,执行push命令

    git push -u origin master

      

    出处:https://blog.csdn.net/s_t_ruggle/article/details/91530997

    =======================================================================================

    SVN项目迁移到Git上(并带有完整的提交记录)

    公司需求早期的一些项目使用的是SVN,现在想要更换为Git,需要代码迁移并且能在Git上看到之前在SVN中的项目的提交记录,公司没有使用gitlab,代码都push在公司的服务器上,用的是TortoiseGit来管理的。

    第一步:公司服务器系统(centos6.8),安装git

    yum -y install git

    第二步:创建git用户:

    useradd git  #创建名称为git的用户
    passwd git   #git用户对应的密码也为git

    第三步:创建git仓库:

    mkdir /home/git/gitrepo
    cd /home/git/gitrepo
    git init --bare test.git
    chown -R git:git test.git

    第四步:开始将svn代码做迁移操作,在windows上任意创建一个空文件夹GitTest,作为一个Git本地仓库,用来存放从SVN上迁移过来的代码。

    第五步:在这个文件中打开Git Bash

    第六步: 在GitBash中输入clone的命令,在Bash中输入如下指令, 就会开始迁移”git svn clone svnUrl”, 其中里面的svnUrl就是你要迁移的项目的SVN地址

    这时会弹出来两个对话框, 让你输入SVN的账号和密码, 当你输入正确的SVN账号和密码时, 代码就会开始迁移. 就会出现如下类似的log

    这就表示迁移成功了, 现在要想看以前的提交记录是否迁移过来的话, 我们就需要在命令行里进入的本地仓库根目录中(也就是带有.git的目录), 进入之后输入git log, 就可以看到以前的提交记录了。

    第七步:push本地仓库到远程服务器仓库,注意:首先要确保你的远程服务器上有这么一个仓库

    #git remote add origin  git@192.168.66.13:/home/git/gitrepo/test.git

    进行这两个操作的时候, 会提示你输入你的Git的账号和密码, 点击ok之后就会进行push操作.
    注意: 这一步的时候可能会提示一个错误:fatal: remote origin already exists.

    如果出现如上所说的错误,解决办法:

    $ git remote rm origin #删除远程git仓库

    然后在执行第七步。

    完成以上步骤后,测试一下,使用TortoiseGit客户端clone项目

    在查看下是否有提交信息

    出处:https://www.cnblogs.com/new-journey/p/10178883.html

    您的资助是我最大的动力!
    金额随意,欢迎来赏!
    款后有任何问题请给我留言。

    如果,您认为阅读这篇博客让您有些收获,不妨点击一下右下角的推荐按钮。
    如果,您希望更容易地发现我的新博客,不妨点击一下绿色通道的关注我。(●'◡'●)

    如果你觉得本篇文章对你有所帮助,请给予我更多的鼓励,求打             付款后有任何问题请给我留言!!!

    因为,我的写作热情也离不开您的肯定支持,感谢您的阅读,我是【Jack_孟】!

  • 相关阅读:
    Hive表中四种不同数据导出方式以及如何自定义导出列分隔符
    build doris 0.11.5 on centos 7/ubuntu
    centos7 gcc升级
    linux-nohup后台运行
    sqoop import mysql to hive table:GC overhead limit exceeded
    Hive开启mapjoin优化、并行执行、动态分区
    How to Plan and Configure YARN and MapReduce 2 in HDP 2.0
    Android 8 AudioPolicy 初始化
    Android 8 声音调整过程
    qcom wlan kernel 解读 WCNSS_qcom_cfg.ini 文件
  • 原文地址:https://www.cnblogs.com/mq0036/p/14699655.html
Copyright © 2020-2023  润新知