1. ホーム
  2. git

[解決済み] GitHubからGitLabへのGitリポジトリフォーク

2022-06-24 08:31:41

質問

ある人のプロジェクトに修正を加えたいと思います。そのプロジェクトは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上にミラーを作成し、そのミラーをフォークするべきでしょうか?
  • あるいは、まったく別のことをすべきでしょうか?

正しいアプローチとは。

ありがとうございます。

アップデイト

GitLabのリポジトリミラーリングはおそらく意味をなさない。自分のGitHubリポジトリのミラーをGitLab上に作成することはできますが、他の人のリポジトリのミラーを作成することはできないのです。

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

今まではこんな感じでした。

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

元のGitHubリポジトリからGitLab上のリポジトリに新しいコミットを取得したい(つまりリポジトリを同期したい)場合、中間段階として自分のローカルリポジトリを使ってこれを行うことができます。しかし、GitHub上のレポとGitLab上のレポの間には直接的な接続がないのです。私の設定は正しいのでしょうか?GitHub上でフォークすれば、何か違いがあるのでしょうか?

どうすれば解決しますか?

変更を追跡するだけなら、まず GitLab (あるいは他の方法でも) で空のリポジトリを作成し、それを自分のコンピューターにクローンします。

次に、GitHub プロジェクトを " アップストリーム "でリモート。

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

これで、変更があれば上流から取得し、プルできるようになりました。(アクセス権があれば、プッシュやマージも可能です)。

git pull upstream master

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

git push origin master

手動でアップストリームをpull/オリジンをpushしたくない場合、GitLabは設定 => Repository => Mirroring repositoriesでミラーリング機能を提供しています。