天天看点

Git手册 - 从SVN迁移到Git

环境:

Centos 6.x

总的来说,从SVN迁移至Git共有以下几步:

1)确保SVN的auth.conf文件里的每个user都在Git将会用来配置提交历史的文件里面有对应的名字和邮件地址

2)创建一个本地的Git仓库

3)将本地Git仓库连接到远程的SVN仓库

4)配置Git的提交历史用户名

5)开始从SVN获取代码

6)将本地Git仓库连接到远程Git仓库

7)推送本地仓库代码到远程仓库

详细步骤:

生成第4步会用到的用户名文件

A. 通过以下命令获取SVN仓库

#svn checkout --username xxxx SVN-REPO-URL

B. 在获取的仓库里,运行以下命令生成authors.txt文件

#svn log ^/ --xml | grep -P "^<author" | sort -u | perl -pe 's/<author>(.*?)<\/author>/$1 = /' > ../authors.txt

C. 以下面的格式编辑生成的authors.txt文件

SVNUser = [GitUser_FullName] <GitUser_Email>            //GitUser_FullName是可选的

创建本地Git仓库

#mkdir folderName

#cd folderName

#git init

将本地Git仓库连接到远程的SVN仓库

#git svn init http://svn.com/proj --no-metadata

配置Git的提交历史用户名

#git config svn.authorsfile ~/authors.txt

开始从SVN获取代码

#git svn fetch

将本地Git仓库连接到远程Git仓库

#git remote add origin SERVER_REPO_LOCATION

推送本地仓库代码到远程仓库

#git pull origin master

#git push origin master

注:

常见错误1:403 Forbidden Error

解决方法,运行以下命令:

#git remote set-url origin https://[email protected]/user/repo.git