添加链接
link之家
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
卖萌的马铃薯  ·  create-react-app ...·  1 年前    · 
安静的弓箭  ·  vue v-for of ...·  1 年前    · 
文武双全的蚂蚁  ·  PHP输出 ISO ...·  1 年前    · 

最近公司要将SVN服务迁移,前段时间刚把SVN服务从windows服务器迁移到Linux。

现在项目越来越多,加之SVN的集中式管理,不支持分布式,分支切换麻烦,Git支持分布式开发,快照式数据,速度快,主干分支切换方便。给领导建议了一下把仓库迁移到git,领导的要求就是可以迁移,但是不能丢提交记录。经过自己的研究尝试,最终把SVN仓库成功迁移到git,下面将迁移过程分享出来。

一.软件安装及git配置

1.git安装

2.gitlab安装(我们使用的gogs,具体根据公司内部的架构和情况选择,中小企业,并且团规规模不是很大的情况下gogs是足够使用了)

3.git账号配置

在你准备作为git本地仓库的文件夹目录->鼠标右键->Git Bash Here  进入git命令行,

输入如下命令:

git config --global user.name "username"

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

username是gitlab下注册的用户名,username@mail.com是gitlab下注册的邮箱

查看配置:

git config --list

4.svn账号与git账号映射

在当前文件夹下创建文件userinfo.txt,文件内容如下斜体:   (注:svn账号3在svn中有记录,但无git账号,提交记录中涉及到的svn账号需要全部列举出来,否则会报错。提交记录可以选择指定记录到最新记录,下面会有说明)

svn用户名1=git用户名1<git邮箱1@mail.com>
svn用户名2=git用户名2<git邮箱2@mail.com>
svn用户名3=git用户名3<git邮箱3@mail.com>

二. svn项目导出到本地git仓库

1.在存放userinfo.txt的同级目录下新建一个文件夹,名称最好命名成你的项目名称

2.继续在Git Bash执行下面命令:

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

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

此处执行命令后会弹出一个窗口,需要登录两次,第一次是登录本地电脑,使用你本地的计算机用户和密码就好;第二步是登录gitlab的用户名密码,这个根据自己注册的用户密码填写就好。

三、在gitlab上创建仓库(我们用的是gogs)

下图红框的地址为后面使用的 giturl

四、关联git远程仓库

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

cd template

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

最近公司要将SVN服务迁移,前段时间刚把SVN服务从windows服务器迁移到Linux。现在项目越来越多,加之SVN的集中式管理,不支持分布式,分支切换麻烦,Git支持分布式开发,快照式数据,速度快,主干分支切换方便。给领导建议了一下把仓库迁移到git,领导的要求就是可以迁移,但是不能丢提交记录。经过自己的研究尝试,最终把SVN仓库成功迁移到git,下面将迁移过程分享出来。一.软件安装及...
六步删除 git Hub上 仓库 的所有 提交 历史 首先废话凑下字数,不想听废话的直接看下面代码。 当我们 commit 次数很多的时候项目 仓库 最后会积攒很多无用的 提交 历史,这时候这些大历史会在项目clone的时候导致速度很慢。 没有梯子的童鞋体验更是不好,所以删除 提交 历史还是很有必要的。 步骤======================== 1.运行 git checkout --orphan latest_branch 2.添加所有文件 git add -A 3. 提交 更改 git commit -am “co
领导让我将以前一个工程的文档给维护的同事。 我只是那个项目的参与者,不是作者。要文档我哪有啊…, 只好尝试将 svn 提交 日志导出给他。 领导以前从来没要求研发向 svn 提交 时写 提交 日志,也没有要求写changlog和其他设计文档,这时候问我有没有文档,整的有点懵逼。 还好我 提交 日志的习惯还蛮好的,每次 提交 都会写 提交 的原因文本。 上网找了一下,已经有同学做了实验。 我也 记录 一下。 在 svn 目录中建立一个实验目录,添加几个文件,修改几次,并分别 提交 提交 时写一些 提交 日志。 浏览 svn 日志 以前开发中未制定、遵循 git 管理项目标准,随意(不规范)的 提交 严重“污染了” 提交 历史,使开发主线 “脏乱”; 基于以前的 仓库 重新开发,这样可 保留 以前的配置等文件,但是需要删除全部的历史 记录 、tag、分支等; 由于自己或其他方面特殊需求,需要 保留 仓库 的部分属性(创建时间,说明,主页等),但需要清除历史 记录 ,使其为“新库”。 基于以上3方面的需求,需要提供一个 在不删除原 仓库 的前提下,清除原 仓库 的所有历
svn 代码 迁移 git 1、收集 svn 上的人员信息,并编辑成 git 能识别的账号2、使用 git svn clone 命令 克隆代码(以下步骤建议在win10上操作)3、用 git 命令查看 提交 记录 (按q退出 )4、关联 git 上的项目地址5、 将本地代码 提交 到远程 仓库 6、合并到master分支接下来记遇到问题即解决方法 因公司架构变动,现要求将手中负责的项目从 svn 迁移 git ,其实 迁移 很简单,但是还需要 保留 svn 上的 提交 记录 ,就无行的给工作增添了一些难度,得还好网上教程比较多,这里是我实战的笔记,仅供参考
最近在使用华为软件开发云进行开发项目管理,目前华为软件开发云支持500M的免费项目空间,而且还可以在线编译和构建,不用担心开发环境和生产环境的不同,很好的体现了DevOps的开发理念. 之前一直是用 svn 做代码管理,而华为软件开发云是使用目前国外比较流行的 Git 进行代码版本控制.在网上查询了 迁移 方式,发现 Git 本身有命令可以直接克隆 SVN 的代码库,而且 迁移 后能保持原 SVN 提交 记录 .以下是总结的...
1.创建一个 Git 仓库 首先,您需要在 Git 服务器上创建一个新的 Git 仓库 。您可以使用 GitLab Git Hub 或 Bitbucket 等托管服务或您自己的 Git 服务器。 2.安装 git - svn 工具 您需要安装 git - svn 工具,这样您就可以从 SVN 仓库 中克隆代码并将其转换为 Git 仓库 。您可以使用以下命令在 Linux 上安装 git - svn 工具: sudo apt-get install git - svn 3.克隆 SVN 仓库 使用以下命令克隆 SVN 仓库 git svn clone < SVN 仓库 URL> <本地目录> 这将从 SVN 仓库 中克隆代码并将其转换为 Git 仓库 。 4.将代码推送到新的 Git 仓库 使用以下命令将代码推送到新的 Git 仓库 git remote add origin <新 Git 仓库 URL> git push -u origin master 这将把转换后的 Git 代码推送到新的 Git 仓库 中。 这样,您就可以将 SVN 仓库 迁移 Git 仓库 中了。