2012-03-06 9 views
1

私は以下のgitワークフローの状況から質問を提起しました。2つのブランチの間で前後にリバースする

ローカルブランチ(原点に同じ):

  • マスター
  • branch_a(マスタからカット)
  • 分岐_B(branch_aからカット)のすべての前

が言われているとこのプロジェクトでは、branch_aが最終的にマスターになる機能の標準ブランチになります。

branch_bがbranch_aに1-2回リベースされ、新しい作業を開始しました。理想的には、branch_bにあるすべての作業はそこに残り、branch_aに戻ります。

これを達成する最も良い方法は何ですか?対話的にbranch_aをbranch_bにrebaseすることはできますか?

+0

この戦略は、同じ機能ですばやく作業する2人の開発者にとって特に役立ちます。 1つの機能ブランチから作業する必要がある場合は、各コミットの前提条件が高すぎます。 –

答えて

1

リベース(IMHO)を考える最良の方法は、ブランチが別のものから分割されたポイントとブランチの先端が「パッチのセット」の間のすべての変更を考えることです。 Rebasingは、本当にすべてのパッチを取得して、それを他のものに適用するだけです(元のブランチの新しいポイントかもしれないし、ツリー内の他の場所にあるかもしれません)。

パッチが新しい場所にきれいに当てはまる場合は、ブランチを他のものにリベースすることができます。幸運なことに、実際にはパッチが正しく適用されないため、失敗した場合にいつでもリベースを中断できるので、試してみるとかなり同じです(新しい場所には変更が必要な重要なコンポーネントがないため修正できません)。

+0

したがって、branch_bをbranch_aにリベースして最新の作業を取り上げると、変更を加えることができました。 branch_bの変更がうまくいけば、branch_aをmasterに組み込む前にbranch_aを安全にbranch_bにリベースすることができます。 – nthdegreeburns

関連する問題