簡體   English   中英

將 git 存儲庫從 GitLab 轉移到 GitHub - 我們可以,如何轉移和陷阱(如果有的話)?

[英]Transfer git repositories from GitLab to GitHub - can we, how to and pitfalls (if any)?

如果需要,可以將存儲庫從 GitLab 轉移到 GitHub。 如果是這樣,我該怎么做呢?

此外,考慮到我可能決定最終將它們移到 GitHub 上(因為它目前有更多功能,我可能會覺得對我的項目很方便)。

您可以傳輸這些(只需將遙控器添加到 GitHub 存儲庫並推送它們)

  • 在 GitHub 上創建一個空倉庫
  • git remote add github https://yourLogin@github.com/yourLogin/yourRepoName.git
  • git push --mirror github

歷史將是相同的。

但是您將失去訪問控制(在 GitLab 中定義的團隊在您的存儲庫中具有特定訪問權限)

如果您在 GitHub 存儲庫的 https URL 上遇到任何問題:

The requested URL returned an error: 403

您需要做的就是輸入您的 GitHub 密碼,但 OP 建議:

然后您可能需要以 ssh 方式推送它。 您可以在此處閱讀有關如何操作的更多信息。

請參閱“推送到 Git 返回錯誤代碼 403 致命:HTTP 請求失敗”。


請注意,邁克還在評論中添加:

GitLab也可以設置push mirror到下游repository, push mirroring to GitHub有具體說明
這可以使用 GitHub 個人訪問令牌,也可以設置為定期推送。
您可以使用此選項在 GitHub 上共享,但將主要開發活動保留在 GitLab 實例中。

這很容易通過導入存儲庫功能登錄到github.com

您會在個人資料圖片的一側找到+按鈕單擊該按鈕,然后將出現import repository的選項。 你會發現這樣的頁面。 在此處輸入圖像描述 您的舊存儲庫的克隆 URL 是必需的,在您的情況下是 gitlab repo url。 然后選擇所有者,然后鍵入此存儲庫的名稱,然后單擊開始導入按鈕。

如果你想遷移包括 wiki 和所有問題和里程碑的 repo,你可以使用node-gitlab-2-githubGitLab 到 GitHub 遷移

我遇到了相反的問題,由於公司政策的變化,我最終不得不為公司創建我自己的 bash shell 腳本,以將數百個 repos 從 Github 遷移到 Gitlab。
該腳本使用 Gitlab API 遠程創建一個 repo,並將 Github repo 推送到其中。 目前還沒有 README.md 文件,但是 sh 有很好的文檔記錄。
同樣的事情可以按照我想象的相反方式完成。 希望這會有所幫助。
https://github.com/mahmalsami/migrate-github-gitlab/blob/master/migrate.sh

對於任何仍在尋找一種更簡單的方法來將存儲庫從 Gitlab 轉移到 Github 同時保留所有歷史記錄的人。

步驟 1. 登錄 Github,創建一個與您要轉移的 repo 名稱完全相同的私有 repo。

第 2 步。在“從命令推送現有存儲庫”下,復制新存儲庫的鏈接,它將如下所示:

git@github.com:your-name/name-of-repo.git

步驟 3. 打開您的本地項目並查找文件夾.git通常這將是一個隱藏文件夾。 .git文件夾中打開config

配置文件將包含以下內容:

[remote "origin"]
url = git@github.com:your-name/name-of-repo.git
fetch = +refs/heads/:refs/remotes/origin/

[remote "origin"]下,將 URL 更改為您在 Github 上復制的 URL。

步驟 4. 在終端中打開您的項目文件夾並運行: git push --all 這會將您的代碼以及所有提交歷史推送到 Github。

第 5 步。為確保一切按預期工作,進行更改、提交、推送和新提交應出現在新創建的 Github 存儲庫中。

第 6 步。作為最后一步,您現在可以存檔您的 Gitlab 存儲庫或將其設置為只讀。

您可以使用以下命令:

cd existing_repository
git remote rename origin old-origin
git remote add origin <yourRepository.git>
git push -u origin --all
git push -u origin --tags

如果發生錯誤,您可以嘗試使用-f命令強制推送,輸入如下:

git push -u -f origin --all
git push -u -f origin --tags

這將是 GitLab 推薦的在 GitHub 上導入現有存儲庫的路徑,但是,如果您將<yourRepository.git>鏈接更改為 GitHub 上的存儲庫鏈接,則可以采用另一種方式,從 GitLab 轉移到 GitHub。 在實踐中,你創造了一個新的起源並強制推動一切。

如果你在 GitLab 上啟用了 MFA,你應該去 Repository Settings/Repository ->Deploy Keys 並創建一個,然后在 GitHub 上導入 repo 時將其用作登錄名

使用默認的 Github 存儲庫導入是可能的,但只需確保在 Gitlab 中未啟用兩因素身份驗證。

謝謝

您可以按照以下 2 個步驟簡單地將 GitLab 項目與包含的歷史記錄和提交一起轉移到 GitHub:

  1. 單擊 Github 配置文件右側的設置,然后選擇導入存儲庫。 然后在舊存儲庫 URL 上粘貼您要傳輸的 Gitlab 存儲庫鏈接。 按照隨附的屏幕截圖導入 git 存儲庫的步驟

  2. 單擊導入,然后在驗證登錄憑據后等待一分鍾,最后你就完成了。 檢查您的 GitHub 存儲庫以查看更改。

一種簡單的解決方案是在本地存儲庫中再添加一個遠程 URL。

腳步:

git remote add <name> <URL>
git push name 

例子:

git remote add github_origin https://github.com/...
git push github_origin

您可以通過以下說明將存儲庫從 gitlab 導入 github 使用用戶界面 (UI):

-> 首先登錄 gitlab

-> 然后在gitlab中復制一個項目的鏈接

-> 然后轉到 github 並登錄

-> 在 github 界面右側按 (+)

-> 然后點擊導入倉庫

-> 然后將鏈接粘貼到字段中的“您的舊存儲庫的克隆 URL”中

-> 然后右鍵repository名

-> 然后選擇私人/公共

-> 然后按“開始導入”按鈕

它將導入您的 gitlab 項目提交的所有文件。

項目完成后會顯示

" 導入完成!您的新存儲庫“鏈接”已准備就緒。

最后導入您的項目。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM