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/gitrepocd /home/git/gitrepogit init --bare test.gitchown -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的账号和密码, 点击ok之后就会进行push操作.
注意: 这一步的时候可能会提示一个错误:fatal: remote origin already exists.

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

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

然后在执行第七步。

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

在查看下是否有提交信息

原文地址:https://www.cnblogs.com/new-journey/p/10178883.html

时间: 2024-10-11 13:04:17

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

git log 查看指定文件的提交记录

使用git log除了可以看整个仓库的提交记录外,还可以指定某个文件的提交记录. 1. 查看指定文件的历史提交记录 命令: git log -- <file> 说明:只需要指定文件名称. 示例: 2. 查看每次提交的内容差异 命令: git log -p -2 -- <file> 参数:-p 表示每次提交的内容差异,-2 则表示显示最近的两次更新. 说明:该选项除了显示基本信息之外,还在附带了每次 commit 的变化. 示例: 3. 单词层面上的对比 命令: git log --

SVN如何迁移到Git?

最近在使用华为软件开发云进行开发项目管理,目前华为软件开发云支持500M的免费项目空间,而且还可以在线编译和构建,不用担心开发环境和生产环境的不同,很好的体现了DevOps的开发理念. 之前一直是用svn做代码管理,而华为软件开发云是使用目前国外比较流行的Git进行代码版本控制.在网上查询了迁移方式,发现Git本身有命令可以直接克隆SVN的代码库,而且迁移后能保持原SVN的提交记录.以下是总结的SVN代码库向华为软件开发云迁移的过程. 主要步骤 1.通过git svn clone命令将SVN代码

CM13添加SudaMod开源项目的来去电归属地,查看commit提交记录

这个问题纠结了很多时间,感谢苏打先森@Sudamod的开源项目. 大家知道CM13是没有来去点归属地的,就算有那也是google,对于中国人不适用,所以这里把方法贡献出来. 1.与通话有关的app Dialer InCallUI Contact Telcom 2.与app有关的开源地址 https://github.com/SudaMod/android_packages_apps_Dialer/tree/sm-2.0 https://github.com/SudaMod/android_pac

Git 撤销中间某次的提交记录

今天遇到一个问题,一周前一位同事把非发布代码合并到发布分支上并已发布线上,在这个提交点后已经有了很多次的提交记录,所以不能直接回滚,使用到了gIt提供的revert.以此记录. git revert commit_id //如果commit_id是merge节点的话,-m是指定具体哪个提交点 git revert commit_id -m 1 //接着就是解决冲突 git revert 3b0318d9 或者 git revert 739385fb -m 1 执行结果: 原文地址:https:/

svn 版本迁移到 git 仓库

1.拉取 svn代码并转成 git 版本 git svn fetch http://svn.qtz.com/svn/qtz_code/java/qtz_sm/project/qtz_sm -Auser.txt user.txt 文件格式如下 xiaolailong = Loissiau<[email protected]> 如果中途报有svn提交者未映射,则 补上 ,再进入git仓库目录,执行 git svn fetch -Auser.txt -Afilename 相当于 --author-f

坑死人不偿命,svn 迁移到 git

用git的人非常鄙视用svn的.因为要不断的开分支.而且也没有本地的分支这个概念. 但是git 作为一项技术,是一定可以被svn替代的.当然替代的方法是否繁琐另当别论,但一定是能被替代.svn同样也能被git替代.大概所有的技术都是一样.都能相互替代,只是你要为替代本身花费多长时间. git作为一种同步工具好用吗?其实真不好用.我梦想的工具一定是可以帮我自动完成merge过程的,永远不用开分支,永远不用告诉我链表头在哪里,以及怎么reset, 什么时候rebase, 什么时候打tag. 一个工具

svn迁移至git

svn 版本库的迁移,只要svn 库为标准目录(trunk.branches.tags)按照git官方文档基本都可以完成. 这里说说我所迁移的非标准目录结构的svn 库 svn 库里有part1目录,part1目录下又分为:code.UI等等,对于这种非标准目录结构,主干就是part1,没有分支,没有标签. 而code下面又分为android.ios目录,目录内才分trunk.tags.branch,这种目录层级结构-- 对于以上非标准目录结构,我采用的是先git svn到本地,并提交到git仓

将项目的版本控制从Vss迁移到Git

之前在Vs2008上一直使用的是Vss版本控制,现在将版本控制更改为Git 迁移原因是其他公司想要在我们公司开发的一个CRM系统做一些定制(个性化需求,将软件上的公司名称和链接更改为他们的或一些跟我们CRM不同的功能) 但又不能影响我们公司CRM正常的开发流程,之前是复制一副源代码然后再处理(之前的一家OEM就是这样处理的,复制的项目并没有添加到版本控制) 但现在又不一家公司需要OEM,难道还要再复制,更改?而且之前的代码如果发现问题怎么办?修改N份?? 之前一直知道Git,但由于之前使用的Vs

eclipse JNI项目迁移android studio相关问题

最近在弄项目迁移,eclipse上的项目用到了JNI,需要转移到android studio,本来对JNI就不太懂,这下更麻烦了,遇到各种问题,过程痛苦不堪.不过终于做完了,把遇到问题记录下来,同时也能让遇到相关问题的人参考一下. 首先,我是把eclipse上的文件复制粘贴过来的,其实并不麻烦,主要是JNI,直接粘贴过来是不行的,而且在as上重新生成so文件也是不现实的,因为我jni知识太差了,只能勉强还用eclipse上的so文件,这样的话方便的多,只要把eclipse中的libs文件夹下的,