web-dev-qa-db-ja.com

Gitモデル:マスターに基づく機能のブランチ

記事に基づいてGitプロジェクトを整理します 成功したGit分岐モデル 。問題は、次のケースの処理方法がわからないことです。

  • develop:主要なアプリの再設計に取り組んでいます(約6か月かかります)
  • master:現在の製品バージョン

ただし、(企業顧客からの)有料のカスタマイズにアクセスするため、顧客が、たとえば新しいレポートの追加を要求する場合があります。

これは技術的にはhotfixではなく、featureです。また、featuresmasterまたはreleaseブランチから分岐してはなりません。さらに、機能が十分に大きい場合、それは完全な違いである可能性がありますrelease。それで、masterにはv1があり、developにはv2がありますが、v1.1、v1.2などの機能にはどこで作業すればよいですか?

私が現在行っていることは、featureからmasterを分岐し、masterdevelopにマージすることです。より適切な/整理されたワークフローモデルはありますか?

2
Diego Jancic

いくつかの考慮事項が私には際立っています。

developではなくdevelopのブランチで主要な再設計を行うことを検討してください。事実上、developの内容は次のリリースを表すはずです。テストまたは強化期間が長い場合は、開発、テスト、強化から一時的なリリースブランチを作成し、それがmasterdevelopの両方にあることを確認できます。この場合、私はリリースブランチをmasterにマージし、次にmasterdevelopにマージする傾向があります。

非常に長く実行されているブランチで物事がぶら下がらないようにすることができる最善を尽くしてください。大幅な再設計を行っている場合、最後まで自分でハングアウトする必要があるものがあるかもしれません。これは簡単なことではありませんが、フィードバックを取得して反復するには、より早く統合してデプロイすることをお勧めします。上流ブランチ(developなど)に変更を加えるときはいつでも、これらを長時間実行ブランチに、頻繁にプルする必要があります。ある時点で、再設計のためのより長く実行されているブランチが開発にマージされ、次のリリースをターゲットにすることができます。

7
Thomas Owens