將gitlab上的專案連同push紀錄移動到github

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 指令無法遷移它們。

如果你需要遷移 MR 與 Issue:

Leave a Reply

Your email address will not be published. Required fields are marked *