記事に基づいてGitプロジェクトを整理します 成功したGit分岐モデル 。問題は、次のケースの処理方法がわからないことです。
develop
:主要なアプリの再設計に取り組んでいます(約6か月かかります)master
:現在の製品バージョンただし、(企業顧客からの)有料のカスタマイズにアクセスするため、顧客が、たとえば新しいレポートの追加を要求する場合があります。
これは技術的にはhotfix
ではなく、feature
です。また、features
はmaster
またはrelease
ブランチから分岐してはなりません。さらに、機能が十分に大きい場合、それは完全な違いである可能性がありますrelease
。それで、master
にはv1があり、develop
にはv2がありますが、v1.1、v1.2などの機能にはどこで作業すればよいですか?
私が現在行っていることは、feature
からmaster
を分岐し、master
とdevelop
にマージすることです。より適切な/整理されたワークフローモデルはありますか?
いくつかの考慮事項が私には際立っています。
develop
ではなくdevelop
のブランチで主要な再設計を行うことを検討してください。事実上、develop
の内容は次のリリースを表すはずです。テストまたは強化期間が長い場合は、開発、テスト、強化から一時的なリリースブランチを作成し、それがmaster
とdevelop
の両方にあることを確認できます。この場合、私はリリースブランチをmaster
にマージし、次にmaster
をdevelop
にマージする傾向があります。
非常に長く実行されているブランチで物事がぶら下がらないようにすることができる最善を尽くしてください。大幅な再設計を行っている場合、最後まで自分でハングアウトする必要があるものがあるかもしれません。これは簡単なことではありませんが、フィードバックを取得して反復するには、より早く統合してデプロイすることをお勧めします。上流ブランチ(develop
など)に変更を加えるときはいつでも、これらを長時間実行ブランチに、頻繁にプルする必要があります。ある時点で、再設計のためのより長く実行されているブランチが開発にマージされ、次のリリースをターゲットにすることができます。