web-dev-qa-db-ja.com

開発との違いは何ですか。機能分岐タイプ?

Gitフローのベストプラクティスに関するいくつかの記事を読みました。 gitブランチには多くのタイプがあります(例:[1]、[2]):

+ Master
+ Develop
+ Feature
+ Bug
+ Proof of concept
+ Release
+ Hotfix

タイプMasterReleaseの違いは何ですか?

タイプFeatureDevelopの違いは何ですか?

[1] http://nvie.com/posts/a-successful-git-branching-model/

[2] http://developer.exoplatform.org/#id-branching-model

18
Do Nhu Vy

[1]に示されているgitワークフローの場合:

  • feature:すべての機能/新機能/主要なリファクタリングはfeatureブランチで行われ、それらはdevelopブランチから分岐してマージされます(通常、何らかのピアレビューの後)。
  • release:十分な機能が蓄積されるか、次のリリース期間が近づくと、新しいreleaseブランチがofdevelopから分岐します。これは、テスト/バグ修正および必要なクリーンアップ専用です名前、計装のさまざまなデフォルト値など)。
  • master QAが品質に満足すると、releaseブランチはmasterにマージされます(また、developに戻ります)。これは、顧客が出荷/使用するものです。
  • hotfixリリース後に重大な問題が見つかった場合、修正はhotfixブランチで開発され、マスターから分岐します。これらは、マスターから分岐する唯一のブランチです。
  • 注:masterのコミットは(releaseまたはhotfixブランチからの)マージコミットであり、顧客に出荷される新しいリリースを表します。

このモデルは主に、a)従う大きなソフトウェアプロジェクト、b)クラシックリリースのバージョン管理、c)別のQAチームを対象としていることに注意してください。 GitHubの多くの一般的なリポジトリは、より単純なモデルに従っています。

25
MikeMB

masterreleaseの違いは、masterブランチが顧客/ユーザーが使用しているものであるということです。実際にインストールまたは販売されたブランチです。

多くのチームでは、masterブランチ(通常はmasterとも呼ばれます)はreleaseブランチでもあります。しかし、これは常にそうではありません。大企業または個別のテスト部門またはQA部門/チームを持つ企業では、マスターブランチは顧客に販売されているブランチですが、リリースブランチはテストされているブランチです。一部のプロジェクトでは、完全なテストを実行するのに1週間以上かかる場合があるため、テスターがテストできるが安定している(開発者が更新を常にプッシュしない)ブランチを用意することは理にかなっています。

featuredevelopの違いは同じ理由からです。 developブランチ(通常developまたはdevという名前)は、安定した開発者のブランチです。従来のソース管理ソフトウェアでは、開発ブランチはリポジトリサーバーです。これは、すべての開発者が共通して持つブランチです。開発を開始するブランチです。

一方、機能ブランチはあなた自身の個人ブランチです。機能/ストーリー/モジュールの開発中に、もちろんコードを大幅に変更します。 gitを活用するには、早期にコミットし、頻繁にコミットする必要があります。しかし、あなたが取り組んでいるコードは、定義上不安定(最終ではない)であり、他の開発者に重大な変更を引き起こす可能性があります。したがって、開発にコードをマージする準備ができるまで、独自のブランチで開発します(開発から分岐)。

7
slebetman