2

私たちは最近 gitflow の導入を開始しました。主にいくつかの YouTube ビデオといくつかのオンライン記事に従って、SourceTree 内の GUI 機能とともに。

しかし、解決したいと思っていた状況に直面しているため、何か間違ったことをしていると思います。

developer 1に取り組んでいますfeature 1developer 2に取り組んでいますfeature 2developブランチは開発用でステージング中です、masterブランチはライブ/プロダクションです

開発者 1

  1. 開発 = マスター (マスターと同期)
  2. 開発 -> 機能 1 への分岐
  3. 開発 <- 機能 1 にマージ

開発者 2

  1. 開発 != マスター (マスターと同期していません)
  2. 開発 -> 分岐機能-2
  3. 開発 <- マージ機能-2

にマージしてライブdeveloper 2に配置したい場合、問題が発生します-これには が含まれます。つまり、両方がライブになります。feature 2masterfeature 1

つまり、私たちは明らかに何か間違ったことをしています - これは私たちが明確にする必要があるものです。頭のてっぺんからこれを回避できる唯一の2つの方法は次のとおりです。

  • masterからではなく、新しい機能を作成します。develop
  • 実際に変更されたファイルのみを取得する「Cherry Pick」を使用しますmaster

私たちが望んでいる解決策は、リリース サイクルのない Web 開発プロジェクトの混合です。クライアントが機能をサインオフすると、文字通りライブになります。これを達成する方法についての提案は大歓迎です。

ありがとう

4

2 に答える 2

1

さて、gitflowのドキュメントhttp://nvie.com/posts/a-successful-git-branching-model/に従って:

develop完成した機能はブランチにマージして、次のリリースに確実に追加することができます

したがって、dev 1 は、次のリリースで 100% 保証されるまでマージfeature 1しないでください。developもしそうなら、dev 2がそれを含めて分岐しても問題ありませんfeature 1。が にある場合feature 1は、developバグ修正を除いて "完了" と見なす必要があります。 から簡単に削除することはできませんdevelop

とは言っても、私は gitflow が面倒で、http: //dymitruk.com/blog/2012/02/05/branch-per-feature/ の方が好きです。構造的にはるかにクリーンであることに加えて、いつでも「次のリリース」から機能を簡単に取り消すことができ、直面している「問題」(ある機能が暗黙のうちに別の機能をもたらす)が発生しないという大きな利点があります。 .

于 2016-08-17T14:35:54.697 に答える