免責事項:Branch2
これは、リポジトリに対してローカルであるか、公開されているが、他の誰もそこからプルしたり作業したりしないことを前提としています。誰かがそれに取り組もうとして、以下の操作を実行すると、あらゆる種類の頭痛の種になる可能性があります。
コマンドの--onto
パラメーターを使用して、ブランチ操作を実行できるはずです。rebase
これは非常に強力で、(少なくとも試してみて) ほぼすべてのコミットの範囲を他のほぼすべてのコミットの上に移動できます。
あなたの状況では、次のようなグラフがあると仮定しましょう
e -- f <-- Branch2
/
a -- b <-- Master
\
c -- d <-- Branch1
がマージの承認を待っているBranch2
間に作業を続行できるように、それを以下のようなものに変えたいとします。Branch1
a -- b <-- Master
\
c -- d <-- Branch1
\
e -- f <-- Branch2
コマンドでそれを達成できるはずです
git rebase --onto branch1 master branch2
Branch1
が にマージされた後master
、リポジトリが次のようになったとします。
a -- b ------- g <-- Master
\ /
c -- d <-- Branch1
\
e -- f <-- Branch2
その後、次のコマンドBranch2
を使用して元に戻すことができますmaster
git rebase --onto master branch1 branch2
このようなリポジトリになります
e -- f <-- Branch2
/
a -- b ------- g <-- Master
\ /
c -- d <-- Branch1
申し訳ありませんが、Branch2 は上下の間をジャンプし続けます。