将项目从 SVN 迁移到 GIT

场景

项目开发中,项目原本是用的SVN,已经用了一年了,现在公司要抛弃SVN用Git,要求把SVN的代码直接搬过去Git,并保留之前的历史提交记录。


操作步骤

  1. 找到已经被svn管理的项目的根目录 WinFarm,右键 Git Bash Here
svn log -q | awk -F '|' '/^r/ {sub("^ ", "", $2); sub(" $", "", $2); print $2" = "$2" <"$2"@qq.com>"}' | sort -u > userinfo.txt

在 WinFarm 目录里面生成了一个文件 userinfo.txt

userinfo.txt样式如: liqiye = liqiye [email protected]

  1. 新建个文件夹 Git,将生成的userinfo.txt放入文件夹Git,然后在Git文件夹中右键选中gitbash弹出窗口后执行下面命令,拉取svn代码到本地新建文件夹中
git svn clone 你的SVN地址 --no-metadata --no-minimize-url --authors-file=userinfo.txt --no-minimize-url

你的SVN地址:

将项目从 SVN 迁移到 GIT_第1张图片
第一次会有一个弹窗:输入 p

后面还有一个弹窗:输入SVN的用户名和密码

SVN密码在这里可以查到,网上找得到这个工具提取加密的密码

将项目从 SVN 迁移到 GIT_第2张图片
静静等待把这个项目的代码从svn拉下来

拉完后,进入 Git 目录,看到我们项目的文件夹 WinFarm,再进去看到.git文件夹

  1. 右键 WinFarm目录选中gitbash在窗口中用git命令查看提交记录
git log

可以看到这是我们在svn提交的代码记录

  1. 关联需要迁移的git库上项目地址(建议创建新的创库,避免合并出错)
    会有弹窗验证,输入git账号密码
git remote add origin 你的Git项目地址
  1. 查看关联地址是否正确
git remote -v
  1. 将远程仓库代码拉取到本地(注意当前分支)
git pull origin master

第一次会弹出窗口,填写你的 git 用户名密码

如果你的 git 仓库已经有文件的那他就会报错,上面的命令换成这个:

git pull origin master --allow-unrelated-histories

如果报错:
在这里插入图片描述

git config --global http.sslVerify false
  1. 合并到远程master分支
git push origin master

你可能感兴趣的:(java,git,svn,github)