web-dev-qa-db-ja.com

別のフォークをすでにフォークしているときに元のレポをフォークするにはどうすればよいですか

以前にjockm/vert.xをフォークして、プルリクエストを送信しました。次に、vert-x/vert.x(jockm/vert.xのアップストリーム)をフォークし、別のプルリクエストを送信します。しかし、[フォーク]ボタンをクリックすると、驚くことに、代わりにjockm/vert.xのtjcrowder/vert.xフォークになります。必要に応じて各プルリクエストを送信できるように、vert-x/vert.xとjockm/vert.xの両方を同時にフォークすることは可能ですか?

答えが この逆の状況に関するこの質問 (「GitHubの方法はありませんが、リモートリポジトリを追加できます」)と同じかもしれませんが、そうでないことを望んでいますそこの答えがどのようにプルリクエストを新しいリモートに送信できるのかわからない。

58
T.J. Crowder

GitHubの方法はありません(小さな嘘、以下を参照)が、心配することもありません。

定義により、フォークのフォークisオリジナルのフォーク。プルリクエストを開くと、プルリクエストの送信元と送信先の両方を選択するオプションが表示されます。そこにある選択肢は明らかにフォークグラフに依存しますが、2つのリポジトリ間のグラフにパスがある限り、安全であるはずです。また、プルリクエストはウェブサイト側に存在するため、gitから使用したくない限り、リモートを追加する必要さえありません。

もちろん、そのグラフでの自分の位置を再検討し、実際の上流の直接の子にしたいかもしれませんが、それはほとんど無関係です。

前に述べたように、実際には複数の分岐を持つねじれた方法があります。つまり、組織を作成して分岐します。そうすれば、同じグラフで複数のリポジトリを「所有」できます。しかし、実際にそこに行く必要はありません。

30
Sigma

sigma's answer のおかげで、jockm/vert.xリポジトリでプルリクエストを行うと、アップストリームリポジトリが利用可能になるだけでなく、アップストリームリポジトリの他のすべてのフォークも利用できることがわかりました。 。だから私がやったことは:

  1. Jockm/vert.xのフォークを削除し、代わりにvert-x/vert.xをフォークします。ほとんどの場合、jockmのバージョンではなく、メインのアップストリームリポジトリ内で作業したいからです。
  2. Jockmに送信したいコミットのブランチと、vert-xに送信したいコミットのブランチを作成します。
  3. 各ブランチに関連する変更を加えます。
  4. Jockm/vert.xリポジトリがリクエストのターゲットとしてリストされているため、各ブランチのプルリクエストを関連リポジトリに送信します(他の約200のフォークとともに)。

同じブランチでの後続のコミットが自動的にプルリクエストに追加されるため、これらのコミットがプルリクエストに唯一残るように、別々のブランチ(基本的にトピックブランチ)を使用しました。

13
T.J. Crowder

より良いオプションは、フォークにブランチを作成し、そのブランチからプルリクエストを作成することです。ブランチを使用してバージョンを「フォーク」できます

5
Dan McClain

プロファイル/設定の下に新しい組織を作成することもできます。次に、同じアカウントを介して同じ元のレポの異なる状態をフォークできます。

1
whithang