2

私が働いている2つの支店があります。1 つはマスターからフォークされ、2 番目はマスターからフォークされますが、最初のブランチの変更に依存します。レビューのために最初のブランチを提出したいと考えています。承認後、マスターにリベースされます。

マスターに最初の変更セットを持たずに、2 番目のブランチで作業を開始する方法はありますか? 私の最初のアイデアは、最初のブランチから 2 番目のブランチをリベースし、最初のブランチがマスターにリベースされたときに、2 番目の変更セットをマスターにリベースすることでした。それは実現可能ですか?そうでない場合、正しいアプローチは何ですか?

4

3 に答える 3

2

免責事項: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 は上下の間をジャンプし続けます。

于 2013-01-23T05:02:55.473 に答える
0

コードレビューを行うためにgerritを使用しているようです。

あなたはこのようにそれを行うことができます:

ブランチ1が送信されてリポジトリにマージされたら、次のように実行できます。

git fetch origin

git rebase origin / masterなど、branch1からの変更を直接リベースします

Br、ティム

于 2013-01-23T03:22:18.100 に答える
0

ブランチ 1 からブランチ 2 への変更が必要な場合は、必要な変更をブランチ 1 からブランチ 2 に gitチェリーピックするだけでよいでしょう。リベース スキーム。

于 2013-01-23T03:20:40.433 に答える