2

私はプロジェクトをフォークし、変更 (C1) を行い、まだ保留中のプル リクエストを送信しました。1週間後、変更を加えた別のプルリクエストを送信したいと思います(C2)。

一方、アップストリーム (分岐元) には多くの変更が加えられます。したがって、マスターをアップストリームと同期させたいので、変更 C2 だけでプル リクエストを送信する必要があります (変更 c1 を追加する必要はありません。これについては別のプル リクエストを既に送信したためです)。

注: ブランチはありません。マスターに C1 をコミットし、プル リクエストを送信しました。C2 を変更しました。しかし今回は、C2をコミットする場所と、C1を追加せずにプルリクエストを送信する方法がわかりません。

4

2 に答える 2

4

独自のブランチで C2 を実行した場合、必要なことは次のとおりです。

  • アップストリーム/マスターでマスターを更新する
  • アップストリーム/マスターの上にC2ブランチをリベースします
  • C2 ブランチからプル リクエストを作成します。

ここに画像の説明を入力

アップストリーム/マスターの上に C1 ブランチをリベースすると、既存のプル リクエストが自動的に更新されることに注意してください。

「 Github プル リクエストの実行方法」も参照してください。


OP user10コメントに追加します:

C1私は自分のマスターにコミットし、プルリクエストを出しました。
私は変更を行いましたがC2、コミットする場所と、追加せずにプルリクエストを送信する方法がわかりませんC1
これは私の問題です。

だからあなたは持っています:

y--y--y--y  (origin/master)
\
 x--C1--C2  (master)

まず、 の上にリベースを実行しないでくださいorigin/master。これにより、既存のプル リクエストの更新がトリガーされます (ただし、今回は、プル リクエストのヒントで言及したように、リベースさC1れた から)C2master

C2 が独自のブランチにあることを確認します。

git checkout master
git branch bC2
git reset --hard master C2~
git tag C2base master

連続する複数のコミットで構成されている場合は、一連の最初のコミットC2に置き換え、その後に ' ' を付けます。これは、コミットがコミットに続く ことを前提としています。C2~C2~
C2C1

進行中の(コミットされていない)作業がないことを確認してください。「reset --hard」はそれらを消去します。

タグC2baseが直前のコミットを参照していることに注意してくださいC2。以下で必要になります。

y--y--y--y   (origin/master)
\
 x--C1       (master)
    ^ \
    |  --C2  (bC2)
 (C2base)

次に、git pull --rebase originマスターを上に再生しますorigin/master

y--y--y--y          (origin/master)
\         \
 |         x'--C1'  (master)
 |
 x--C1    
    ^ \
    |  --C2  (bC2)
 (C2base)

C1ここで が複製され、bC2ブランチを通じて参照されていることに注意してください。

最後に、あなたのブランチがhas wellbC2の上にあることを確認してください:origin/master

git rebase --onto origin/master C2~ bC2
git tag -d baseC2

これにより、次のことが得られます。

           C2'      (bC2)
          /
y--y--y--y          (origin/master)
          \
           x'--C1'  (master)

(古いC1コミットはもはや何からも参照されていないため、reflogで消えます。たとえば、不適切なリベースを元に戻すために使用できます)

そして、コミットbC2のみを含むブランチからプル リクエストを実行できるようになりました。C2

于 2013-07-03T11:46:14.167 に答える
0

すべての PR の前に、マスター ブランチを最新の状態にする必要があります。つまり、PR の順序は重要ではありません。最後に、マスター ブランチ (および場合によっては新しいフォーク) にすべての変更が含まれます。

于 2013-07-03T11:08:05.273 に答える