Gitを使用する場合、アクティブな開発にmasterブランチを使用することをお勧めしますか?


32

まず、いくつかの背景として、すべてのプロジェクトチームをgitの使用に移行し、特定のブランチを継続的に統合して監視できるようにリポジトリを編成する方法のガイドラインを策定しています。テストサーバーへの自動展開。現在、開発中の2つのモデルがあります。

  1. 最も安定したコードを表すmasterブランチ、最先端のコードの開発ブランチ、およびQAテストの準備ができたコードの統合ブランチでの成功したブランチングに関するnvie.comの記事の影響を大きく受けています。

  2. マスターブランチが最先端の開発コード、QAテストの準備ができているコードの統合ブランチ、および展開の準備ができている安定したコードの本番ブランチを表す代替モデル。

この時点で、masterブランチが何を表すかに関しては部分的にはセマンティクスの問題ですが、masterブランチで積極的な開発を行っているのは実際には良い習慣ですか、それとも実際にはそれほど関係ないのでしょうか?


1
Iスコット・チャコンはGitHubのを開発するために使用するworfklowのような:scottchacon.com/2011/08/31/github-flow.html
user16764

1
説明したように、私はセマンティック問題ではないようです-どの組織も独自のプロセスを進化させようとしています。一般的に重要なのは、「HEADのソースコードが常に本番稼働状態を反映する」ような何かを定義することです。あなたはそれがそれほど重要ではなく、呼び出すことを選択するのgit-流れとGitHubの両方のワークフローあなたが「ブツ」生産準備に押すと、その分離にと制御に焦点
Murph

@Murph-本当ですが、私たちはこれの一部をゼロからやっているので、採用される新しい開発者が異常な内部慣行のために急な学習曲線を持たないように、多かれ少なかれ一般的な慣習に従うことが最善だと思いました。
rjzii

その後、あなたはあなた自身の質問に答えました(-:質問よりも正直に言うと、あなたは曲線を
はるかに超えてい

回答:


33

masterブランチの唯一の本当の定義機能は、一部の操作のデフォルトであるということです。また、ブランチ名は特定のリポジトリ内でのみ意味を持ちます。私masterdevelopment、たとえば、あなたを指しているかもしれません。また、masterブランチは必須ではないので、どのブランチにすべきかについて混乱がある場合は、通常、完全に除外することをお勧めします。

しかし、私の意見では、それをプッシュするためのデフォルトとして考えるのが最良の方法です。開発者が読むほとんどのオンラインチュートリアルは、そのことを前提としています。そのため、master最も頻繁にプッシュされるブランチが存在することは非常に理にかなっています。一部の人々は、それを厳密な精査の後を除いて開発者が触れることのできない原始的なコピーと考えていますが、そのように使用すると、gitが提供する有用なデフォルトの多くが削除されます。そのような手付かずのブランチが必要な場合は、一部の人だけが書き込みできる完全に独立したリポジトリに配置します。


7
+1。また、「プロダクション対応」コードは重要なコードであるため、この重要性を強調する名前のブランチにも配置する必要があります。デフォルトのブランチ名としての「マスター」は、他のすべてのリポジトリで意図に関係なく使用されるため、その要求を確実に満たしません。
Bananeweizen

4
+1。これが現実の答えです。ポイントを強調するために:あなたのチームの誰も「マスター」ブランチを定義しなかった、gitシステムはそうしました。重要なことについては、チームの誰かが定義したブランチに固執します。
トラビスウィルソン14年

1
完全に同意します。私はgitフローモデル(nvie.com/posts/a-successful-git-branching-model)に非常に似ていますが、私を邪魔する唯一のことは、マスターがリリースのために厳密に予約されていることであり、直感に反します。
バチ

12

いいえ、QAに進む前の最初であってもお勧めできません。ベストプラクティスとして、開発のパターンは最初から最後まで一貫している必要があります。マスターブランチは空の状態で開始し、開発ブランチを分岐してファイルの追加を開始し、統合ブランチにマージしてからマスターに移行する必要があります。

開発中にmasterブランチがビルドしないことを誰も気にしないかもしれませんが、早い段階で悪い習慣になります。マスターは常にビルドする必要があり、メジャーフィーチャーリリースの場合、メジャービルドのブランチをアーカイブして、必要に応じて安定したリリースポイントに戻すことも悪い考えではありません。


3
タグを介してバージョントラッキングを行う方が良いと思いませんか?
アドニスK.カクーリディス

1
@AdonisK .:あなたの質問の関連性がわかりません。
ジョエルイーサートン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.