web-dev-qa-db-ja.com

GitHubからGitLabへのGitリポジトリーのフォーク

他の誰かのプロジェクトに修正を実装したいとします。このプロジェクトはGitHubにあります。

GitHubでフォークを作成し、修正を実装できました。

ただし、GitHubではなくGitLabでフォークを作成したいと思います。

それは可能ですか?どうやって?

私はこの記事を読みました: https://about.gitlab.com/2016/12/01/how-to-keep-your-fork-up-to-date-with-its-Origin/ =

とにかく、私は私の場合に何をすべきかわからない。

  • GitHubからプロジェクトのGitLabにフォークを作成する必要がありますか?
  • または、GitHubからプロジェクトのGitLabにミラーを作成する必要がありますか?
  • または、GitLabでミラーを作成してからミラーをフォークする必要がありますか?
  • または、まったく違うことをすべきですか?

正しいアプローチは何ですか。

ありがとう。

UPDATE

GitLabでのリポジトリミラーリングはおそらく意味がありません。 GitLabでGitHubリポジトリのミラーを作成できますが、他の人のリポジトリのミラーを作成することはできません。

https://docs.gitlab.com/ee/workflow/repository_mirroring.html

これは私がこれまでにやったことです:

元のGitHubプロジェクトをローカルマシンに複製しました。ローカルリポジトリの新しいブランチに修正をコミットしました。 GitLabで空のプロジェクトを作成しました。ローカルリポジトリのOriginをGitLabの空のプロジェクトに設定し、両方のブランチをGitLabにプッシュしました。ローカルリポジトリのアップストリームをGitHubリポジトリに設定しました。

元のGitHubリポジトリからGitLab上のリポジトリに新しいコミットを取得する(つまり、リポジトリを同期する)場合、ローカルリポジトリを中間ステップとして使用してこれを実行できます。ただし、GitHubのレポジトリとGitLabのレポジトリの間に直接の接続はありません。セットアップは正しいですか? GitHubで分岐した場合、何か違いはありますか?

37
Cimlman

変更を追跡するだけの場合は、まずGitLab(または使用しているもの)で空のリポジトリを作成し、コンピューターに複製します。

次に、GitHubプロジェクトを「 pstream 」リモートとして追加します。

git remote add upstream https://github.com/user/repo

これで、変更があればアップストリームからフェッチしてプルできます。 (アクセス権がある場合は、プッシュまたはマージすることもできます。)

git pull upstream master

最後に、独自のGitLabリポジトリにプッシュバックします。

git Push Origin master

アップストリーム/プッシュオリジンを手動でプルしたくない場合、GitLabは設定=>リポジトリ=>リポジトリのミラーリングでミラーリング機能を提供します。

46
CJxD

ブラウザのみの方法:

  1. Gitlabで新しいプロジェクトを作成します(名前のある空のプロジェクトで十分です)
  2. [設定]-> [リポジトリ]に移動します
  3. 「リポジトリのミラーリング」の下にGitHub URLを入力します
  4. 「ミラーの方向」が「プル」であることを確認してください
  5. 「ミラーリポジトリ」ボタンを押します
  6. 表示されるエントリの横にある同期アイコンを押します
3
aksh1618

GitLabがここにどのように適合するかは本当にわかりません。

プロジェクトがGitHubにある場合、おそらくGitHubプルリクエストを使用しているので、プロジェクトをGitLabに移動することは役に立ちません。

貢献したい場合は、GitHubリポジトリをフォークし、GitHubでプルリクエストを行ってください。何らかの理由でGitHubに貢献できない場合は、パッチを作成してメンテナーにメールで送信できると思います。

1
tehp

プライベートgithubリポジトリをフォークすることは可能です。

  1. 新しいプロジェクトをクリックします
  2. インポートを選択
  3. Githubを選択
  4. Gitlabアプリの認証と自動作成に使用されるOAuth2
  5. 分岐するプロジェクトを選択

^ githubのプライベートリポジトリでこれを実行し、正常にインポートされました(incブランチなど)。インポートされたプロジェクトは自動的に非公開になります;)

0
Daithí