【实践】SVN一个项目迁移到Git上

情况:svn和git不在一台服务器上,都是linux

1. 在自己的工作机上 检出需要迁移的项目

2.在此目录下,右键打开 git bash 输入 下面的命令,打开看到是一列svn 账号

svn log --xml | grep "^<author" | sort -u | \awk -F '<author>' '{print $2}' | awk -F '</author>' '{print $1}' > userinfo.txt

3.打开这个userinfo.txt,里面都是提交人员的名单

4. 在每个名字后面加上 等于号 和邮箱 格式如下,然后保存下。

loginname = Joe User <[email protected]>

5.进入一个准备作为git库的目录,把userinfo.txt 放进去 

6. 执行下面命令,由于只是迁移一个project而且还是在trunk下,所以命令如下

 git svn clone http://IP地址/svn/web_common/trunk/projectXXX --no-met
adata --no-minimize-url --authors-file=userinfo.txt --no-minimize-url  git库的名字  

7. 报错如下: 可以全部忽略

Initialized empty Git repository in D:/XXXX/svn-git/nanhang/nanhang/.git/ W: Ignoring error from SVN, path probably does not exist: (160013): Filesystem h as no item: '/svn/web_common/!svn/bc/100/trunk/djy_nanhang' path not found W: Do not be alarmed at the above message git-svn is just searching aggressively for old history.

8. 需要等待一会才会有下载的信息出来,下载需要的时间根据文件大小而定

8.clone完成后,进入仓库目录 看看commit是不是迁移过来了

9. 有了远程库地址,我们就可以将本地的工程push到远程地址,命令如下:

git remote add origin *******

10.关联了地址后,最后一步就是将代码给push上去:

git push -u origin master

push的时候可能报错,由于远程库上有 本地库没有的文件 需要强制关联

git pull origin master --allow-unrelated-histories

只有再push一次

猜你喜欢

转载自blog.csdn.net/u013559775/article/details/89149986