2017-02-15 7 views
1

私は最近、Github PRのために積み重なったdiffsにこのblog postを読んで、それに従おうとしています。私はレゴのために悩んでしまったが、上流のレポにアクセスできないいくつかの積み重ねられたPRを作りたいと思っているので、私はそれにブランチを押し込むことができない。私はフォークしたレポに初期ブランチを作成し、上流レポのマスターに対してPRを開いた。私はその後、私のベースとしてその前のブランチを持つ別のブランチを作成しました。私はいくつかのコードを変更し、最初のブランチをベースにして2番目のPRをオープンしたいと思っていましたが、私は自分のフォークされたレポに対してのみ行うことができ、上流のレポに対してはできません。誰も同じような問題に遭遇しましたか?過去に私は上流のレポにアクセスしていましたので、私の支店を上流に押し入れることができたので問題はありませんでした。アップストリームにアクセスできない場合の回避策についてはわかりません。アップストリームに対してGithub PRのベースブランチとしてフォークされたリポジトリのブランチを使用できますか?

+0

私はそれを正しく理解していれば、あなたのフォークのブランチを作成し、作成しましたPRからマスターへもしあなたがこれを行うならば、上流には新しい枝がなく、自分の枝にしかありません。なぜ新しいブランチに新しい変更をマージしたいのですか?そのブランチのためにさらに変更を加えた場合、あなたのフォーク上の同じブランチにコミットして、PRは更新されるか、新しいPRを作成します(古いPRが閉じられている場合)あなたのフォーク上にマスターが入っていれば)新しいPRを作成する – whoisthis

+0

新しい変更をupsteamマスターにマージしたいのですが、PRの読みやすさを助けるために複数のPRを持っていたいと思います。最後にたとえば、最初のPRが私が使用しようとするインターフェースを導入し、2番目のPRがそれらのインターフェースの具体的な実装を導入し、3番目のPRがそれらの実装をリポジトリーのどこかで使用するかもしれません。したがって、最初のPRに変更を加えたくないのは、それが1つの大きなPRになるからです。一方、新しいブランチから新しいPRを作成すると、最初のPRの変更が反映されます。 – jeromefroe

答えて

2

次に、その前のブランチをベースとして別のブランチを作成しました。私はいくつかのコードを変更し、私は最初のブランチをベースにして2番目のPRをオープンしたいと思っていましたが、自分のフォークされたレポに対してのみ行うことができます。上流ブランチに対して作業し、あなたのものは元のレポにまだマージされていません。それはあなたのフォークにのみ存在します。

回避策された:

  • あなたの仕事を追加
  • 、あなたの最初の分岐から
  • git cherry-pick (which is to say duplicate)コミット(元レポの枝から意味)上流/マスターから2番目のブランチを作成あなたの第二分岐のため、あなたのフォークに
  • があなたのフォークからあなたのPRをすることをプッシュし

OPが終了したので:

PRには最初のブランチからの変更が含まれていたので、私が気にしていたことはそれほど達成できませんでした。

私は、Githubが、PRがすでに開いている分岐されたレポの上流のブランチに対してPRのベースを作ることを最終的には問題にしていると信じています。

これは、ブランチが上流にまだ統合されていないため、上流のレポには存在しませんが、上流のレポのスタックプル要求の可能性を禁じているようですに押し込む。

私は同意します:理想的には、PRは他のPRとは独立して適用されることを意図しています:保守担当者が選択し、受け入れるものを選択します。

上記の説明は回避策ですが、最終的にはベストプラクティスではありません。

OPが追加されます:

私が行うことを決めた何が私のフォークレポの前のブランチに対して上流のマスターと私のその後のPR用のに対して私の最初のPR開いていました。
次に、1つのPRが着陸すると、次のPRのベースブランチを上流のマスターに簡単に変更できます。これには以前のPRの変更が含まれています。確かに更新起源/マスターに対する既存のPRを更新するための正しい方法である

(今別のPRをマージ含む)

+0

提案していただきありがとうございます!私はそれを試してみましょう。最初のステップでupstream/masterから作成する2番目のブランチはローカルにしか存在しないため、これは問題になるかもしれません。したがって、私はそれを私のPRのベースとして使用することはできません。私は何かを逃しているかもしれないので、まだそれを試していない。 – jeromefroe

+0

@jeromefroeはい、PRをするには、まず地元のレポから2番目のブランチをフォークにプッシュする必要があります。それが私の答えの中で「あなたのフォークへのプッシュ」という意味です。 – VonC

+0

私はあなたの回避策を試しましたが、PRには最初のブランチからの変更が含まれていたので、私が気にしていたことを達成できませんでした。私は問題が最終的にGithubが私にPRの基盤をPRが既に開かれている分岐されたレポの上流の支店にすることを許していないと私は信じている。これはもちろん、そのブランチが上流に統合されておらず、上流のレポには存在しないので理にかなっていますが、プッシュできない上流のレポに対するスタックプル要求の可能性を禁じているようです。 – jeromefroe

関連する問題