7

複数の異なるgitブランチ戦略について読んだことがありますが、マスターブランチは「本番環境対応」ブランチとして使用されることが多く、追加のuatブランチとdevブランチがあることに驚きました。同じ3つのブランチでgitリポジトリをセットアップすることを考えていますが、「master」にdevコードを含め、本番ブランチとuatブランチを追加します。そうすれば、開発者はデフォルトのgitブランチ(「マスター」)に簡単にマージできます。そのようにしない理由はありますか?

gr、

コーエン

4

4 に答える 4

9

あるワークフローを別のワークフローから選択しない特別な理由はありません。Gitでは通常、開発チームの裁量でベストプラクティスを決定します。

あなたが言及した本番対応のマスターアプローチには、多くの場合、複数の開発ブランチ(機能ブランチと呼ばれることもあります)があります。通常、マスターブランチは1つだけ(多くの場合、本番ビルドは1つだけ)であるため、これらすべてを配置する最終的な場所としてマスターが選択されます。 )。

これは、いくつの企業が働いているかですが、確かにすべてではありません。他の多くは「不安定なマスター」アプローチを使用します。これは、あなたが言及したものと同様のパターンに従います。代わりに、本番リポジトリを持ち、独自のマスターとブランチは不安定であると見なされ、チームリーダーは、コードを作成するときに本番リポジトリにプッシュします。特定のブランチは本番環境に対応していると見なされます。

ここでのGitの重要な側面は、誰もが独自のブランチとマスターを備えた独自のローカルリポジトリを持っていることです。これにより、適切と思われる悪意のある目的のために、いつでも独自のプライベートブランチを作成できますが、ブランチ名の目的を定義することはより困難になります。

于 2012-05-01T12:14:14.887 に答える
6

DVCS (分散バージョン管理システム) を理解するための重要な概念は、1 つのワークフロー (ブランチ間のマージ) ではなく、2 つのワークフロー (リポジトリ間の公開 (プッシュ/プル)) があるということです。「実際に動作する git 分岐モデルは?
を参照してください。

つまり、リポジトリを複製することを意味し、各クローンについて、尋ねたいことは次のとおりです。

「デフォルトで」(特別なパラメーターなしで) リポジトリーを複製する場合、どのコンテンツを表示したいですか?

複製されたレポに含まれる可能性のあるすべてのブランチのうち、そのコンテンツが ' master' ブランチになります。
そして、その「デフォルトのブランチ」を変更できます: 「Git: ベア リポジトリでアクティブ ブランチを変更する正しい方法は?」を参照してください。

したがって、開発専用のレポがある場合、マスター ブランチは「動作する」最新のコードを表し、進行中のさまざまな「実験」用の他のブランチとなります。
これは基本的に Git リポジトリ自体が従うものです。「Git/Git ワークフロー」を参照してください。

ただし、他のクローンは、他の開発ライフサイクル ステップ (uat -- ユーザー受け入れテスト、sit -- システム統合テスト、 -- pre-prod または prod) 専用にすることができます。
その場合、それらの ' master' ブランチは、そのレポが果たす役割に合わせて異なる意味を持ちます。

于 2012-05-01T13:04:01.450 に答える
1

それはすべて、開発者の快適さにかかっています。説明したアプローチを進めることができます。また、スプリントやその他の方法論に基づいてコミットを行うための複数のブランチが存在する場合もあります。コードを本番環境にデプロイしようとするたびに、コミットがプッシュされた特定のブランチをマージしてください。

于 2012-05-01T13:10:00.657 に答える