svn 迁移至git操作手册

项目交付、版本管理工具变更等情况下,迁移svn旧历史记录有很大必要,方便后续追踪文件的提交历史,文件修改记录比对等。git自带了从svn迁移至git的工具命令,可很好的对svn上的提交历史做迁移和映射,操作简单方便。但是初次接触不熟练,这里做一个总结和记录,内容尽量简单化。争取提供给刚刚接触git和准备迁移的用户一个简单易懂的方案。

旧svn服务器:192.168.1.185(对生产的敬畏)

新svn+git服务器:192.168.1.203

我是把旧的svn通过dump下来传到203的svn上面这需要点时间,这个原理跟mysql的dump一样

把SVN上的代码仓库迁移到Gitlab上,实际上就是把SVN仓库转变成Git仓库,并且希望能保留原SVN仓库的Commit等历史记录,这一点很重要。
SVN迁移到Gitlab需要安装git-svn

yum install -y git-svn

建立users.txt(存储svn账号与gitlab上账号的关联性)

svn log svn://192.168.1.203 -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2">"}' | sort -u > ./users.txt

得到的结果:

然后开始把SVN仓库转变成Git仓库,执行以下命令:

git svn clone svn://192.168.1.203/XinglvTmc/ --no-metadata --authors-file=users.txt --trunk=trunk --tags=tags --branches=branch XinglvTmc

添加GitLab到Git源信息

git remote add origin URL

注:目的地gitlab仓库地址

5. 将trunk, branches等上传

git push origin --all

为了将标签变为合适的 Git 标签,运行

# cd  my_project
# cp -Rf .git/refs/remotes/origin/tags/* .git/refs/tags/
# rm -Rf .git/refs/remotes/origin/tags

这会使原来在 remotes/origin/tags/ 里的远程分支引用变成真正的(轻量)标签。

接下来,将 refs/remotes 下剩余的引用移动为本地分支:

# cp -Rf .git/refs/remotes/* .git/refs/heads/
# rm -Rf .git/refs/remotes
 
现在所有的旧分支都是真正的 Git 分支,并且所有的旧标签都是真正的 Git 标签。 最后一件要做的事情是,将你的新 Git 服务器添加为远程仓库并推送到上面。
下面是一个将你的服务器添加为远程仓库的例子:
 git remote add origin http://192.168.1.203/root/xinglvtmc.git/

git fatal: 远程 origin 已经存在。

不小心将git远程地址配错了,再次配置提示以下错误:

fatal: 远程 origin 已经存在。

此时只需要将远程配置删除,重新添加即可;

git remote rm origin

git remote add origin https://github.com/***/WebCrawlers.git

再次提交文件即可正常使用

粗心造成的小错误,顺便说一下,如果git没有commit就执行push操作会出现以下错误

fatal: unable to access 'https://github.com/***/WebCrawlers.git/': Empty reply from server

解决:只需要先commit 在 push即可

gitlab删除已上传项目中的文件夹

SVN迁移到Gitlab实践经历的更多相关文章

  1. SVN迁移到GitLab,保留提交记录

    1.下载GitBash 此工具自带git svn命令,无需再下载git-svn工具 2.GitBash终端中输入以下命令 git svn clone svnurl srcPath 3.push本地仓库 ...

  2. svn迁移到git仓库并保留commit历史记录

    svn迁移到git仓库并保留commit历史记录 最近在做svn迁移到gitlab,由于之前一直是由svn做版本控制.最简单的方式是将svn的内容export出来,然后添加到gitlab即可.但是,如 ...

  3. 使用subgit进行svn迁移至git(branch,tags)

    前言: 最近公司需要将整体项目从svn迁移至gitlab上,经过几天的研究,现记录一下流程 整体思路是进行一次导入: 先通过subgit将svn整个import至本地,在与git上的项目进行合并. 1 ...

  4. SVN迁移Gitlab步骤

    概述 公司要求将之前使用SVN进行管理的项目迁移到Gitlab进行项目管理,但是运维连不上我们这边的SVN服务器,于是我们就得自己将SVN项目迁移到Gitlab.Yeah!终于有我表现的机会了. 要求 ...

  5. 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录

    公司内部原本使用 SVN 进行版本控制,但随着 Github 的流行我个人的代码管理习惯逐渐转变.虽然公司项目并非开源,SVN 所具有的标准 trunk / branches / tags 结构完全够 ...

  6. git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?

    最近逐步逐步的将公司的项目都从SVN往Git迁移了,但是想团队成员都能够一步到位就迁移到Git是不可能的,因为还有大部分人都还不会Git,所以整个过渡过程估计得大半年. 因此导致虽然项目迁移过来了,但 ...

  7. ②将SVN迁移到GitLab-多分支多标签迁移

    之前我们介绍了<①将SVN迁移到GitLab-单分支迁移>,文中研究了svn迁移到git单分支的操作过程,本文针对实际开发过程中svn使用到的trunk.branches.tags情况进行 ...

  8. ①将SVN迁移到GitLab-单分支迁移

    将SVN上的代码迁移到GitLab上,实际原理是将所迁移的服务器上,拷贝SVN上的相关代码,在服务器上生成Git相关仓库,然后推送到GitLab仓库,并保存SVN相关的提交记录,分支,标签等信息. 一 ...

  9. 前端小微团队的Gitlab实践

    疫情期间我感觉整个人懒散了不少,慢慢有意识要振作起来了,恢复到正常的节奏.最近团队代码库从Gerrit迁移到了Gitlab,为了让前端团队日常开发工作有条不紊,高效运转,开发历史可追溯,我也查阅和学习 ...

随机推荐

  1. ICEM-圆锥的一种画法

    原视频下载地址:https://yunpan.cn/cqK53dKBnduM9  访问密码 42be ​

  2. meshing-三棱锥结构化网格

    原视频下载地址: https://yunpan.cn/cqcq2gE6Iy2P8  访问密码 7d5a ​

  3. BZOJ1941Hide and Seek

    做KD_tree的入门题. 问题就是求出任意一个点距其他点的最大曼哈顿距离和最小曼哈顿距离差,然后对其取min即可. 这个东西就是KD_tree可以轻松解决的了. 下面总结一下做KD_tree(不带修 ...

  4. 2018-2019-2 20165114《网络对抗技术》 Exp 8 Web基础

    Exp 8 Web基础 目录 一.实验内容 二.基础问题回答 (1)什么是表单 (2)浏览器可以解析运行什么语言. (3)WebServer支持哪些动态语言 三.实践过程记录 3.1Web前端HTML ...

  5. 粒子群优化算法及其java实现

    憋了两周终于把开题报告憋出来了,再一次证明自己不适合搞学术,哎--,花了点时间把报告中提到的粒子群算法看了看,看了些资料,用java跑起来. 算法简介 粒子群算法最先由Barnhart博士和Kenne ...

  6. cross socket和msgpack的数据序列和还原

    cross socket和msgpack的数据序列和还原 procedure TForm1.Button1Click(Sender: TObject); begin var pack: TSimple ...

  7. patch工具的使用

    1. 最简用法 patch -p1 < jello.patch

  8. C++中的函数库

    函数库是由系统建立的具有一定功能的函数的集合. 库中存放函数的名称和对应的目标代码,以及连接过程中所需的重定位信息.用户也可以根据自己的需要建立自己的用户函数库. "cstdlib" ...

  9. SQL-W3School-函数:SQL FIRST() 函数

    ylbtech-SQL-W3School-函数:SQL FIRST() 函数 1.返回顶部 1. FIRST() 函数 FIRST() 函数返回指定的字段中第一个记录的值. 提示:可使用 ORDER ...

  10. 【分类算法】朴素贝叶斯(Naive Bayes)

    0 - 算法 给定如下数据集 $$T=\{(x_1,y_1),(x_2,y_2),\cdots,(x_N,y_N)\},$$ 假设$X$有$J$维特征,且各维特征是独立分布的,$Y$有$K$种取值.则 ...