svn遷移到git(保留提交記錄)

各種原因我們可能會遇到遷移svn到git的情況,下面介紹遷移的過程

1、安裝 git-svn

yum -y install git-svn

2、建立svn賬號和git賬號的映射關係

創建一個文件users.txt 內容如下

zhangsan=zhangsan<[email protected]>
jerry=jerry<[email protected]>
tom=tom<[email protected]>

3、將svn倉庫中的內容轉換爲git倉庫的內容

git svn clone http://svn.test.com/repos/erp/code/branch/mail --no-metadata --authors-file=users.txt mail_back

如果倉庫歷史悠久則執行時間會比較長,如果在svn服務器上操作可以將域名換成 127.0.0.1或localhost 會加快執行速度。命令的語法比較豐富,請參考其他文檔。

執行完這個命令後會自動在當前路徑創建一個本地的git倉庫 mail_back,這就完成了svn倉庫到本地git倉庫的轉換

下面介紹git倉庫的推送

4、在遠程git中創建倉庫 mail_back

如果是github、gitlib、gogs,可以在web管理界面在後臺創建一個倉庫,也可以使用命令創建一個遠程倉庫,這裏就不介紹了

5、關聯git遠程倉庫

cd mail_back

git remote add origin http://git.test.com/erp/mail_back.git

git remote -v  查看關聯情況,該命令會顯示git推拉的git遠程倉庫地址

如果關聯有誤可以刪除關聯  git remote rm origin

6、push至遠程git倉庫

git push -u origin master

$ git push -u origin master
Enumerating objects: 1745, done.
Counting objects: 100% (1745/1745), done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1492/1492), done.
Writing objects: 100% (1745/1745), 415.73 KiB | 1.46 MiB/s, done.
Total 1745 (delta 910), reused 0 (delta 0)
remote: 處理 delta 中: 100% (910/910), 完成.
To http://git.test.com/erp/mail_back.git
 * [new branch]      master -> master
Branch 'master' set up to track remote branch 'master' from 'origin'.

如果這條命令順利執行成功,那麼在遠程git倉庫就能看到提交的內容。 

如果命令提交失敗,可以把整個本地倉庫目錄打包下來,到其他電腦上執行提交操作,比如可以在windows下使用gitbash進行提交。

本文內容到此結束。

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章