這篇文章使用 SubGit 這一套工具來做 SVN 專案至 Git Repository 的轉換。選用這一套是因為參考的網站表示轉移的前置作業較少,較容易成功。除此之外,也可以嘗試用 TortoiseGit 裡面的 SVN to Git 轉移工具。
使用 SubGit 的步驟並取得 Git Repository
-
下載 SubGit,目前的版本仍然可以免費的作一次性將 SVN 專案轉換至 Git Repository,其他功能則有不同的試用 / 收費標準。
-
安裝 SubGit。2020 年使用的安裝程式,不必再手動設定 Path 和 JRE 的路徑。
- 在 SVN 的專案目錄下,對 SVN 專案已有的上傳者,建立
author.txt
,作為名稱與 E-Mail 的對照,內容範例如下:AAA = AAA <AAA@mail.com> BBB = BBB <BBB@mail.com> CCC = CCC <CCC@mail.com>
- 開啟命令提示字元,切換到要放置 Git 專案的目錄下。
- 輸入以下指令,替換掉 SVN 專案的位置與 Git 專案名聲,並耐心的等待轉換完成。 如果會發生卡住的情形,則需要加入
--minimal-revision XXX
,從 revision XXX 進行轉換,減少轉換失敗的可能性。subgit import --non-interactive --authors-file author.txt --svn-url svn://svn_url/svn_project project.git
-
移動至 project.git 所在的目錄,輸入
git clone -l project.git
。-l
表示從本機端複製一個 Git Bare Repository (沒有工作目錄的純 Repository) 並轉換成一般的 Git Repository。 - 使用
git push
指令上傳至遠端,加入--mirror
的參數將整個專案 clone 至遠端伺服器。(可以在 push 時加入--dry-run
測試傳上去的結果。)
git remote add origin http://git_url/project.git
git push -u --mirror origin