背景
因为公司要求,需要将原svn代码迁移到git上,并使用git进行代码版本管理。
流程步骤
第一步:需要创建git仓库目录
- 按照公司的规定将现有代码按照产品或者项目的维度进行分组管理,根据实际情况我按照产品+区域的方式分成产品group和区域subgroup
- 在每个子分组下面建立trunk、branches和tags。准备将生产在用的代码迁移至trunk,将历史版本或者生产暂不启用的迁移至branches,最后再将迭代里程碑的迁移至tags。
- 最后创建新的project,用于存储实际代码。
- 克隆project的空间路径
第二步:svn迁移到本地
我采用的办法很粗暴,直接把svn上的代码export到本地。后续可以考虑采用网上获取提交代码的用户记录。
第三步:将svn代码加入到本地git
git init
git add .
git commit -m "svn代码迁移到git"
第四步:建立git远程仓库连接
git remote add origin http://XXXXX.git
第五步:合并代码到远程git仓库
git push -u origin master
执行过程的问题
原因是我创建project时自动初始化了一个readme.md,导致本地初始化时实际本地与远程git仓库不一致。
我的实际解决办法:直接删除project,重新创建一个project,且不初始化创建readme.md
还有一个办法就是从远程git仓库先同步一次到本地。
git pull origin master