3

現在、Git を使用してワークフローを変更し、エラーやリグレッションを最大限に回避しています...

私はこれを読みました: http://nvie.com/posts/a-successful-git-branching-model/

簡単な要約を作成するには:

  • masterブランチには、製品バージョンを表すタグがあります。
  • 開発ブランチは、次のリリースが準備される場所です。毎晩テストが実行されるブランチです。そしてナイトリービルドのブランチ。
  • 次の機能が作成され、 developブランチの最後にマージされるFeature-Somethingブランチ。このブランチは開発者リポジトリのみにある必要があります。
  • ホット フィックスが作成されたFix-Somethingブランチは、 developmasterでマージできます
  • Release-1.2ブランチは、最後の修正と変更が加えられた次のリリースが準備される場所です。プロダクションの準備ができたら、マスター開発にマージされます。

とても気に入っていますが、私たちの要件のいくつかと互換性がないものが 1 つか 2 つあるようです。

  • まず、私たちのソフトウェアには、たとえば1.0バージョンのクライアントと1.2のクライアントがあります。クライアントを 1.0 から 1.2 に移行しないのは、それ以降のバージョンで Unity 3.4 をサポートしないという単純な事実のためです。しかし、一部のクライアントはまだそれを使用しています。

しかしここで、製品のコアにバグが見つかり、バージョンごとに修正する必要があるとします。コミットを複製せずにこのワークフローでこれを行うのは複雑に思えます...

次のようなことを考えました。

Git ワークフロー

この新しい変更されたワークフローでは、修正がすべての運用ブランチに適用される場合、すべてのブランチにマージするだけで済みます。そのため、メイン リリース バージョンごとにブランチを作成することを考えました。

しかし、それは良いワークフローですか?このワークフローの短所は何ですか? プロ?ちょっとややこしいかも…と思います。

  • このワークフローと互換性がないと思うもう 1 つの点は、pull- request. 私たちはシステムを使いたいと思っていますpull-request。つまり、誰かが機能を完成させたりバグを修正したりするとき、彼は自分の作業をマージしたいブランチでプルリクエストを作成する必要があります。

しかし、リンクされた記事で説明されているように、機能またはバグのすべてのブランチが開発者のコ​​ンピューター上にのみ存在する必要があるという事実により、プルリクエストの使用が不可能になるのではないかと考えていました。pull-requestをリクエストする前に、ブランチをGitHubにプッシュする必要があると思いますよね?

最後に、このワークフローについてどう思いますか? 4 人から 10 人の開発者の小さなチームでも大丈夫ですか? それをより良くするための提案はありますか?より良いワークフローはありますか?

4

1 に答える 1

0

したがって、2 つの並列安定ブランチを維持する必要があります。git を使用すると分岐がかなり簡単になりますが、ソフトウェアの並列バージョンを維持するにはかなりのリソースが消費されます。いずれにせよ、これは苦痛であることを期待してください。

このシナリオに関する一般的なヒント:

  • 2 つの並列安定ブランチの寿命を推定します。彼らが長生きすればするほど、最終的にはより多くの努力が必要になります。
  • どのブランチでどれだけのアクティビティが期待できるかを考えてください。特に、1.0 シリーズは時折の重要なバグ修正のためだけのものですか、それとも重要な開発活動があるのでしょうか。後者の場合、両方のブランチをできる限り近づけるようにしてください。

2 つのバリエーションを想像できます。

  • 1.0.x はまれな重要なバグ修正のみを取得します。次に、開発ブランチは基本的に 1.2 に近く、1.2 リリースごとにそこにマージされます。まれなバグ修正をチェリーピックして 1.0 ブランチに直接戻すことができます。

  • 1.0.x には重要な機能があります。次に、実際には 1.0.x に近いブランチでこれらの機能を開発する必要があります。これは別の開発ブランチである可能性があります。

非常に複雑な分岐モデル (チームを簡単に混乱させる可能性があります) に着手する前に、必ずこの記事もお読みください。

于 2013-07-15T22:20:15.913 に答える