天天看點

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