GitLabからGitHubにgitリポジトリを転送します-私たちは、どのように、そして(もしあれば)落とし穴がありますか?


204

必要に応じて、GitLabからGitHubにリポジトリを転送できます。もしそうなら、どのように正確に同じことをすることができますか?

また、そうする前に注意する必要のある落とし穴や予防策があります。最終的にそれらをGitHubに移動することを決定する可能性があることを考えると(プロジェクトには今より多くの機能があるため) )。

回答:


210

それらを転送することができます(リモートを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の方法でプッシュする必要があるかもしれません。方法については、こちらをご覧ください。

エラーコード403の致命的エラーを返すGitへのプッシュ:HTTPリクエストが失敗しました」を参照してください。


ありがとうVon-あなたの答えは私のためにトリックをしました。正確なgit remote add cmdについてあなたの答えに少し追加し、必要に応じてsshの方法をプッシュしました。大丈夫だと思います。
boddhisattva 2014年

@boddhisattva大丈夫ですが、編集が拒否されたようです。自分で答えに戻しました。
VonC

5
インポートの問題とラベルに関するコメントはありますか?コード以外のものをプルアンドプッシュでインポートできますか?ありがとう。

@YakovK私は、PRと問題を考慮した自動プロセスを認識していません。少なくとも、GitHubのPRはブランチです(であるため stackoverflow.com/a/30542987/6309を)、インポートできます。
VonC、2015年

1
@kikiそれはすべてのローカルブランチをプッシュますが、ローカルリポジトリ自体がクローンの場合、デフォルトのローカルチェックアウトブランチとしてマスターのみを持ちます。を使用する前に、他のローカルブランチをそれぞれのリモートトラッキングブランチの後に作成する必要がありますpush --mirrorstackoverflow.com/a/18911322/6309stackoverflow.com/a/24099141/6309(最後の文)で言及されている代替案も参照してください
VonC

149

これはgithub.com、リポジトリ機能のインポートにより非常に簡単です。

プロフィール写真の横にある+ボタンをクリックすると、オプションが表示されimport repositoryます。あなたはこのようなページを見つけるでしょう。 ここに画像の説明を入力してください 古いリポジトリのクローンURLが必要です。この場合はgitlab repo urlです。次に、[所有者]を選択し、このリポジトリの名前を入力して、インポートボタンをクリックして開始します。


33
これはGitHubが追加したことでとても便利です。ただし、ファイアウォールの背後にある内部GitLabである場合は機能しません。これは、GitLabの大規模なユースケースです。
abalter 2017年

7
インポートオプションを使用している他のユーザー向けの簡単なメモです。これを機能させるには、GitLabでMFAを無効にする必要がありました。
Dデイ

2
これは正常に動作します。承認された回答よりもはるかに良い
LnxSlck

ブランチをインポートするにはどうすればよいですか?
coderInrRain

1
githubはプライベートリポジトリの追加を無料にしたので、インポートされたリポジトリは必ずしもパブリックである必要はありません。
Shrey Garg、


7

私は反対の問題を抱えていて、会社のポリシーの変更により、最終的には会社用の独自のbashシェルスクリプトを作成して、何百ものリポジトリをGithubからGitlabに移行する必要がありました。
スクリプトは、Gitlab APIを使用してリモートでリポジトリを作成し、Githubリポジトリをそのリポジトリにプッシュします。README.mdファイルはまだありませんが、shは十分に文書化されています。
同じことは私が想像するのとは逆の方法で行うことができます。これが役立つことを願っています。
https://github.com/mahmalsami/migrate-github-gitlab/blob/master/migrate.sh


2

GitLabでMFAを有効にしている場合は、リポジトリ設定/リポジトリ->キーのデプロイに移動してキーを作成し、GitHubにリポジトリをインポートするときにログインとして使用する必要があります

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.