SVN项目迁移到Git上(并带有完整的提交记录)
2017-12-26 23:19
417 查看
序言
公司之前一直在使用SVN, 现在想要更换为Git, 所以就面临着代码的迁移, 当时第一个想法就是先把项目从SVN上check下来, 然后断开与SVN的关联(就是删除.svn文件), 然后再push到Git仓库中, 但是这样操作的话就有一个问题, 就是之前在SVN上的提交记录就全部没有了, 想到这里不免的感伤一下, 这样对以后代码的追踪非常的麻烦, 所以就考虑有没有一种将SVN中的项目迁移到Git上的方法呢(保留以前完整的提交记录), 终于, 功夫不负有心人, 最后发现Git提供了这样一个功能(这里不得不说Git还是很强大的).步骤
为了更直观的让大家看到这个步骤, 我这里就新创建一个项目, 并和SVN中的一个仓库关联在一起(这些步骤在这里就不再过多描述了, 不了解的同学可以自行百度一下, 这方面的文章有很多), 然后再将这个项目迁移到Git上面(这里以GitHub为例). 好了, 废话不多话, 直接上步骤:1. 在任意位置创建一个空的文件夹
我这里是在桌面创建了一个空的文件夹GitTest, 作为一个Git本地仓库, 用来存放从SVN上迁移过来的代码.
2. 在这个文件中打开Git Bash
3. 在GitBash中输入clone的命令
在Bash中输入如下指令, 就会开始迁移”git svn clone svnUrl”, 其中里面的svnUrl就是你要迁移的项目的SVN地址, 如我的SVN地址是 C:/Users/Mr Zhang/Desktop/gitTest/GitSvnTest, 那么我就要输入: git svn clone C:/Users/Mr Zhang/Desktop/gitTest/GitSvnTest这时会弹出来两个对话框, 让你输入SVN的账号和密码, 当你输入正确的SVN账号和密码时, 代码就会开始迁移. 就会出现如下类似的log
这就表示迁移成功了, 现在要想看以前的提交记录是否迁移过来的话, 我们就需要在命令行里进入的本地仓库根目录中(也就是带有.git的目录), 进入之后输入git log, 就可以看到以前的提交记录了, 如下图:
这时可以看到, 我以前在SVN上的几次提交记录, 若你想要看其中两次提交的变化的话, 可以使用git diff 来查看, 这里就不再演示了.
你以为到这里已经结束了吗? 当然没有, 这时才仅仅是clone到Git本地仓库了, 你还需要把这个仓库和你远程的服务器上的Git仓库关联在一起才行.
4. push本地仓库到远程服务器仓库
首先要确保你的远程服务器上有这么一个仓库, 如我这里的服务器上的仓库是https://github.com/fights/GitTest.git (此仓库已被我删除). 我就需要在Bash中输入如下指令进行关联和push操作:进行这两个操作的时候, 会提示你输入你的Git的账号和密码, 点击ok之后就会进行push操作.
注意: 这一步的时候可能会提示一个错误:fatal: remote origin already exists.
这时, 你可以按照 这篇博客的步骤来解决这个问题.
好了, 做完这些步骤, 你会发现你已经成功的把项目从SVN上转移到了Git上面, 并且还带有完整的提交记录.
相关文章推荐
- git学习------>从SVN迁移到Git之后,项目开发代码继续在SVN提交,如何同步迁移之后继续在SVN提交的代码到Git?
- Git仓库完整迁移 含历史记录
- Git服务器迁移(换到新Linux服务器下,保留原来的提交记录)
- svn迁移到git仓库并保留commit历史记录
- svn服务器上不同仓库下的项目迁移并保持历史记录
- SVN——SVN项目迁移到GIT
- 记录git提交本地项目
- svn项目迁移到git项目
- git迁移到svn时原有历史提交中出现过冲突导致git svn dcommit出错的解决办法
- SVN GIT 提交VS项目
- svn迁移到git仓库并保留commit历史记录
- ubuntu将svn项目迁移到git步骤以及遇到问题的解决方案
- SVN上的项目如何迁移到Git
- 将代码库从 SVN 迁移至 Git 并保留所有 commit 记录
- MiniOA开发过程记录(3)-通过SVN提交项目
- PhpStorm 9.03 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
- PhpStorm 集成 开源中国(oschina.net)的Git项目,提交SVN时注意事项
- svn 迁移到 git 仓库并保留 commit 历史记录
- svn项目迁移至git准备工作
- SVN服务器搭建和使用和Mac下提交本地项目到git