1. 在 GitHub 建立一個空專案
首先,在 GitHub 上建立一個新的儲存庫(Repository)。
- 注意: 不要勾選 “Initialize this repository with a README” 或新增授權檔案,保持它是一個完全空白的狀態。
2. 使用裸複製(Bare Clone)從 GitLab 下載專案
在你的電腦終端機輸入以下指令,這會下載專案的所有版本資訊,但不會產出一般的資料夾結構:
Bash
git clone --bare https://gitlab.com/username/project-name.git
(請將網址替換為你 GitLab 專案的實際網址)
3. 將專案推送到 GitHub
進入剛才複製下來的 .git 資料夾,並將內容強制推送到 GitHub:
# 進入專案資料夾
cd project-name.git
# 將內容鏡像推送到 GitHub
git push --mirror https://github.com/username/new-repository-name.git
這個步驟會完成以下任務:
- 同步所有當前分支(Branches)。
- 同步所有歷史提交紀錄(Push Logs/Commits)。
- 同步所有標籤(Tags)。
4. 關於 Merge Request (MR) 的說明
這是最需要注意的地方:Git 紀錄不等於 MR 紀錄。
- Commit 紀錄: 會完美保留。在 GitHub 的提交歷史中,你可以看到誰在什麼時候改了什麼。
- MR/Issue 討論紀錄: 這些是存在 GitLab 資料庫裡的,上述的 Git 指令無法遷移它們。