svn 代码迁移到git

这篇具有很好参考价值的文章主要介绍了svn 代码迁移到git。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

因公司架构变动,现要求将手中负责的项目从svn上迁移至git,其实迁移很简单,但是还需要保留 svn上的提交记录,就无行的给工作增添了一些难度,得还好网上教程比较多,这里是我实战的笔记,仅供参考。

1、收集svn上的人员信息,并编辑成git能识别的账号

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

注:此命令最好是在mac或LINUX系统上执行生成 users.txt

执行成功后会在 svn目录生成 users.txt
##2、 将用户信息修改成git能够识别的格式

zhansan = 张三 <zhansan@qq.com>
lisi = 李四 <lisi@qq.com>
wangwu = 王五 <wangwu@qq.com>

注:如果这个时候还知道用户的邮箱可先保持与前面英文账号保持一致

2、使用 git svn clone 命令 克隆代码(以下步骤建议在win10上操作)

git svn clone https://svn_project_url/ --no-metadata --authors-file=../users.txt ../bpms-bb

注:svn_project_url 即你的svn代码地址

3、用git命令查看提交记录 (按q退出 )

D:\克隆到本地代码地址> git log

4、关联git上的项目地址

D:\克隆到本地代码地址>git remote add origin https://gitlab.wuhan.cn/project/xiangzi.git

查看关联地址是否正确
git remote -v

5、 将本地代码提交到远程仓库

git pull origin master

如果提交报错 ,说明远程仓库有操作记录,可以使用强制合并提交
git pull origin master --allow-unrelated-histories

6、合并到master分支

git push origin master
这样就基本完成了 迁移工作。


接下来记遇到问题即解决方法

1、 svn迁移到git时因其他原因中断,再次使用clone 命令报错

Using existing [svn-remote "svn"]
svn-remote.svn.fetch already set to track :refs/remotes/git-svn

在项目目录上使用命令:git svn fetch 继续操作,可节省不少时间

2、由于项目较大,或者同时执行多个克隆命令 导致空间不足

libsvn: Out of memory - terminating application.
      0 [main] perl 641 cygwin_exception::open_stackdumpfile: Dumping stack trace to perl.exe.stackdump

我的解决方法是将窗口关掉,打开新命令窗口 并执行:git svn fetch

3、 svn代码迁移到git ,电脑突然关机,或误操作将命令窗口关闭

.git/svn/refs/remotes/git-svn/index.lock': File exists.

Another git process seems to be running in this repository, e.g.
an editor opened by 'git commit'. Please make sure all processes
are terminated then try again. If it still fails, a git process
may have crashed in this repository earlier:
remove the file manually to continue.
write-tree: command returned error: 128

执行命令 git svn fetch 也会报错,需要找到 index.lock,删除掉再执行即可文章来源地址https://www.toymoban.com/news/detail-401039.html

到了这里,关于svn 代码迁移到git的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 如何规范使用Git及提交代码的要求

    Git是目前最流行的版本控制系统之一,它可以帮助开发人员更好地管理代码版本,并协作开发。使用Git进行代码管理需要遵循一些规范和技巧,本文将介绍如何规范地使用Git,常用的Git命令和技巧,以及如何创建分支和提交代码。 规范地使用Git可以帮助团队更好地协作开发,

    2024年02月15日
    浏览(30)
  • Git的安装和常用命令&Git与SVN的区别&Gitee远程仓库团队开发代码共享演示

    目录 一、Git入门 1.1 Git简介 1.2 Git与SVN的区别 1.2.1 详解 1.2.2 图解  1.3 Git相较于SVN的优势与劣势 1.3.1 Git的优势与劣势 1.3.2 SVN的优势与劣势 1.4 Git的工作流程 1.4.1 图解 1.4.2 详解 二、Git的安装以及常用命令 2.1 Git官网链接 2.2 安装步骤 2.3 Git的常用命令 2.3.1  常用命令概览 2.4 使

    2024年02月03日
    浏览(36)
  • 【Git Bash】在公司你是如何向gitlab上提交代码和拉取代码的,请看这里→

    注意:请详细看4.3存在冲突那里 查看是否有修改,会显示红色的modified修改文件 若不显示,则表示你当前并没有修改和添加任何代码 git add . 表示将当前目录下的所有文件添加到暂存区 可以使用命令 git status 查看,绿色的文件表示已添加到暂存区,modifiled表示你修改过的文件

    2024年02月03日
    浏览(34)
  • 转让北京通信工程施工二级资质公司要求和价格

          随着通信市场的不断扩大,通信工程企业的发展也越来越快。在通信施工市场中,拥有二级资质的企业才能够更好、更稳定地参与市场竞争,可是资质申请过程较为繁琐,对于很多中小企业而言缺少人力、财力、精力等情况下,其实资质转让也是一种不错的选择。事

    2024年04月09日
    浏览(27)
  • 新手入公司git的运用,项目克隆拉取与推送。vscode的源代码管理

    1.项目的克隆拉取 新建一个文件夹  打开文件夹后,鼠标右键git Bash Here  选择好分支,在复制url   就把项目克隆下来 , 拉取就是 后面的master也是对应的分支 2、项目的推送  新建一个空的文件夹   打开文件夹后,鼠标右键git Bash Here 先仓库初始化 git init   把你写的项目复

    2024年02月03日
    浏览(48)
  • Git仓库代码迁移

    前言 本文建立在已有 git 仓库地址存在的情况下,将当前 gitLab 仓库的代码迁移到另一个 gitLab 仓库中 或有其他更加简洁的方案,由于时间仓促,并未过多研究,还望大佬指点!!! 以下操作如有不当,望指正!!! 步骤 新建一个文件夹,将当前需要迁移的 gitLab 仓库中的代

    2023年04月08日
    浏览(25)
  • GIT进行代码仓库完整迁移

    1、通过clone命令将仓库镜像下载到本地 例如: git clone --mirror http://gitee.com/test.git 2、进入本地镜像仓库 例如:  cd test.git 3、将仓库中的旧的远端地址更改为新仓库地址 例如: git remote set-url --push origin http://gitee.com/demo.git 4、将修改后的Git镜像仓库推送到新的仓库 至此,旧仓库

    2024年02月12日
    浏览(33)
  • git仓库迁移代码到新的git仓库

    此操作可以保留git仓库的历史提交记录,开始多仓库版本管理 1.查看当前仓库远程地址的名字。默认就有一个origin,代表远程仓库的名字    git remote  2.查看远程地方url   git remote -v 3.新增远程地址名称    git remote add origin2(随便去,不重复即可) master 4.设置新的远程地址  

    2023年04月16日
    浏览(28)
  • 从一个git仓库迁移代码到另一个git仓库

    如果A是已有仓库,B是新建立的空仓库。(如下操作,提交记录也会带到新仓库里) 1、在本地拉一下( git clone )A仓库的代码,或者是 git pull 下最新的代码。 2、 git remote # 查看本地连接的有哪些 远程仓库,默认是 origin 3、 git remote add origin2(这个名字随便起) master # 这里是在

    2024年02月15日
    浏览(42)
  • Java后端入职第四天,就被要求代码回退(Git回退实战)

    初入职场,由于自己的失误或者对git不熟悉,把被人的代码给冲突掉了,然后需要立马回滚,对于新手开发,应该比较常见吧!或者,比较多一种情况,错误把工程add了到了暂存区,比如一些本地配置,本来就不应该提交的,又或者,开发中只提交部分代码,又想最新的提交

    2024年02月06日
    浏览(21)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包