web-dev-qa-db-ja.com

GitlabからGithubへのミラーリング

私はすべてのコードを保持するためにプライベートGitlabインスタンスを使用しています。しかし、私と一緒に仕事をしているほとんどのスタッフは現在Githubアカウントを持っているので、移動してGitlabリポジトリをGithubにミラーリングしたいと思います。

私の状況:

  • gitlabを実行しているサーバー(オムニバス)
  • 私とスタッフが一緒に組織できる組織を作成するGithubアカウント。

Gitに--mirrorスイッチがあることは知っていますが、これがどのように機能するのかよくわかりません。オンラインで見つけたドキュメントは非常に不安定でした...だから誰かが私を助けてくれたらいいのにと思います。 :)

17
Ingwie Phoenix

GitLabには、UIからこれを行うオプションがあります。リポジトリの[設定]-> [リポジトリ]に移動します。

https://gitlab.com/yourUserNameInGitLab/yourRepoName/settings/repository

次に、「リポジトリのミラーリング」オプションを見つけて、展開をクリックします。あなたがしたいことは、「プッシュ」ミラー方向を選択し、このURLを入力することです:

https://[email protected]/yourUserNameInGitHub/yourRepoName.git

11
knocte

この前のStackOverflow 質問は、リポジトリを別のサービスからGitHubに移動する方法を扱い、最初の答えはコマンドラインを介してそれを行う方法を扱い、2番目と3番目はよりユーザーフレンドリーな方法ですが、残念ながらGitLabインスタンスがローカルサーバー上にある場合は機能しません(これはあなたの場合のようです)。

ただし、説明されているように、リポジトリをコマンドラインからGitHubに「インポート」することはできます GitHub docsによる 、これはGitHubとして推奨される方法です 代替手段としてこれを提供します GitHubを使用するインポーターツール(前のSO質問)で強調表示されています)

ドキュメントから取られた手順の要約:

  1. 新しいリポジトリを作成します GitHubでプッシュしたい。
  2. GitLabサーバーからローカルのベアクローンを作成します。

    git clone --bare https://githost.org/extuser/repo.git

ベアクローンは完全に複製されており、ファイルを編集するための作業ディレクトリがないので、クリーンなエクスポートです。

  1. そのディレクトリに移動し、--mirrorフラグを付けてプッシュします。 ミラーフラグは、参照(ブランチ/タグ)がGitHubにコピーされることを保証します。

    cd *repo.git*

    git Push --mirror https://github.com/ghuser/repo.git

  2. 最後に、作成したローカルリポジトリを削除します。

    cd ..

    rm -rf repo.git

10
matrixanomaly

別のオプションは、OriginにURLを追加することです。

git remote set-url --add Origin [email protected]:<USERNAME>/<PROJECTNAME>.git

Originにプッシュすると、元のOrigin(gitlab)と上記で追加されたOrigin(github)の両方にプッシュされます。

0
Kris