独自のブランチで C2 を実行した場合、必要なことは次のとおりです。
- アップストリーム/マスターでマスターを更新する
- アップストリーム/マスターの上にC2ブランチをリベースします
- C2 ブランチからプル リクエストを作成します。
アップストリーム/マスターの上に C1 ブランチをリベースすると、既存のプル リクエストが自動的に更新されることに注意してください。
「 Github プル リクエストの実行方法」も参照してください。
OP user10はコメントに追加します:
C1
私は自分のマスターにコミットし、プルリクエストを出しました。
私は変更を行いましたがC2
、コミットする場所と、追加せずにプルリクエストを送信する方法がわかりませんC1
。
これは私の問題です。
だからあなたは持っています:
y--y--y--y (origin/master)
\
x--C1--C2 (master)
まず、 の上にリベースを実行しないでくださいorigin/master
。これにより、既存のプル リクエストの更新がトリガーされます (ただし、今回は、プル リクエストのヒントで言及したように、リベースさC1
れた から)C2
master
C2 が独自のブランチにあることを確認します。
git checkout master
git branch bC2
git reset --hard master C2~
git tag C2base master
連続する複数のコミットで構成されている場合は、一連の最初のコミットC2
に置き換え、その後に ' ' を付けます。これは、コミットがコミットに続く
ことを前提としています。C2~
C2
~
C2
C1
進行中の(コミットされていない)作業がないことを確認してください。「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