码迷,mamicode.com
首页 > 其他好文 > 详细

svn 代码导入到 git 操作指引

时间:2016-06-17 01:02:33      阅读:610      评论:0      收藏:0      [点我收藏+]

标签:svn git 迁移

针对  svn 代码导入到 git 操作指引

  1. 背景说明

要求
  • 在 develop 分支上需要保留 branch 上的 log,不能只是一个合并提交。

具体操作步骤

  1. 从 SVN clone  trunk 和 branch 代码到本地

clone 完成后获得两个目录 分别是 trunk 和  branch-feature-june-milestonecd  trunk 进入到 trunk 目录
  • 在 trunk 目录下执行:git remote add  remote-branch  ../branch-feature-june-milestone ( ../branch-feature-june-milestone 是指前面 clone 获得的 branch 代码目录)

cd  trunk 切换到 branch 目录下
  • 执行:git checkout -b  branch-init

  • 执行 git log 查看提交,找到最早的由 scm 新建分支所提交产生的版本号:858f79c343a36cc6f30dcaae2501047908eeb039 (此处的版本号是指由scm 所提交的新建分支的提交版本号,注意,scm 可能有多个提交,一般会新建目录,再把代码导入到分支,所以,这个版本号一般会在该分支上的第一个或第二个 log 中出现,判断标准时,改 log 的后面一个是有开发人员提交的)

  • 执行 git reset --hard 858f79c343a36cc6f30dcaae2501047908eeb039  (此处是为了保证 该分支只剩下由 scm 所产生的所有提交,不能包含任何开发人员的提交,也不能遗漏 scm 所做的提交)

  • 执行 git log 查看日志,是否只剩余新建分支的日志。

cd  trunk  进入到 trunk 目录
  • 执行:git fetch remote-branch , 将 remote-branch ( ../branch-feature-june-milestone )中的代码同步到 trunk 目录下

  • 执行 git checkout  remote-branch/master  切换到 remote-branch/master 分支。

  • 执行 git rebase --onto master remote-branch/branch remote-branch/master

  • 如果执行上述命令过程中出现冲突过,先解决冲突,执行 git add 然后执行 git rebase  --continue 继续rebase 的动作。

  • rebase  完成后 执行 git checkout -b develop

  • 执行 git remote add origin git@gitlab.inin88.com:lin.zhou/mobile-stock-zxjt-iOS.git (此处 地址需要更改为 自己需要迁移到的地址)

  • git checkout master

  • git push origin master:master 将 trunk 代码推送到 master

  • git checkout develop

  • git push origin develop:develop 将 branch 代码推送到 develop


svn 代码导入到 git 操作指引

标签:svn git 迁移

原文地址:http://8833081.blog.51cto.com/8823081/1790032

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!