2012-05-01 5 views
4

私は複数の異なるgitブランチ戦略について読んでおり、masterブランチはしばしばプロダクションレディブランチとして使用され、追加のuatとdevブランチが存在すると褒めました。 私はgitリポジトリを同じ3つのブランチでセットアップすることを考えていますが、 'master'にはdevコードが含まれ、プロダクションとuatブランチが追加されます。そうすれば、開発者は単にデフォルトのgitブランチ( 'master')にマージすることができます。そんなことをしない理由はありますか?マスターブランチにgitが含まれているもの

GR、

コーエン

+4

gitでは、 'master'は特別な意味を持ちません。必要に応じて 'master'ブランチを完全に避け、' uat'、 'dev'と' production'を持つことができます。 – svick

答えて

5

それは通常、彼らのベストプラクティスを決定するために、開発チームの裁量に任されていますGitので、別の上に1つのワークフローを選択しない具体的な理由はありません。

あなたが言及しているプロダクションレディマスターアプローチでは、複数のdevブランチ(機能ブランチとも呼ばれることがあります)を持つことが多いため、通常はマスターブランチが1つだけでなければならないため、 1つの生産ビルドのみ)。

これは企業の数ですが、すべてではありません。他にも多くの人が「不安定なマスター」アプローチを採用しています。これは、あなたが言及したものと同様のパターンに従います。生産レポジトリを持ち、マスタとブランチが不安定であると考えられ、チームリーダーがコードを特定の支店は生産準備完了とみなされます。

ここでGitの重要な点は、誰もが独自のブランチとマスターを持つローカルリポジトリを所有していることです。これにより、彼らは自分が望むときはいつでも自分のプライベートブランチを作成することができます。しかし、ブランチ名の目的をより厳しくすることは難しくなります。

4

DVCS(分散バージョン管理システム)で理解できる重要な概念は、1つのワークフロー(ブランチ間のマージ)ではなく、2つのリポジトリ間のパブリッシュ(プッシュ/プル)です。

私は、「デフォルトでは」レポのクローンを作成する場合(特別なパラメータ):
は「What git branching models actually work?

あなたの周りのリポジトリのクローンを作成し、各クローンのために、何を聞きたいことはあることを意味します

を参照してくださいませんどのようなコンテンツを見たいのですか?

クローンされたリポジトリに含まれる可能性のあるブランチのうち、その内容はあなたの 'master'ブランチになります。
"デフォルトでブランチ"を変更することができます: "Git: Correct way to change Active Branch in a bare repository?"を参照してください。

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

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

1

すべては開発者の快適さに依存します。あなたが説明したアプローチを進めることができます。また、スプリントやその他の方法論に基づいてコミットを行うための複数のブランチがあります。 プロダクションでコードを展開しようとするたびに、コミットがプッシュされている特定のブランチをマージして行きます。

1

私はこれが実際にはGit's recomended workflow document.と読むのが良いと思います。

抜粋:

卒業 ~~~~~~~~~~

与えられた機能は、対応する枝の間に安定した、それも 「卒業生」に、実験から経つにつれソフトウェア。 git.gitは、以下の「統合ブランチ」を使用します:

  • 「MAINT」は、次の「メンテナンス リリース」に行くべきコミットを追跡する、すなわち、最後のリリース安定版のアップデート。

  • 'master'は、次のリリースに入るコミットを追跡します。

  • 「次へ」は、 マスターの安定性をテストするトピックのテストブランチを意図しています。若干異なる使用されている第4の審判の分岐があり

  • 「PU」(提案の更新は、()」を参照してください。まだ含めるため かなり準備ができていないもののための統合ブランチですインテグレーションブランチ " )。

4つのブランチのそれぞれは、通常、その上の の直系子孫です。

概念は、十分に安定していると考えられる であると、機能が不安定なブランチ(通常は ' または' pu ')に入り、次のリリースのために「修了」から「マスター」になります。

+0

"'master'は、次のリリースに入るコミットを追跡します;これは 'dev'ブランチのやり方です –

関連する問題