2012-04-20 12 views
5

Git-flowまたはGit内のクライアント固有の機能と変更要求を管理するにはどのようにお勧めしますか?クライアント固有の機能は、クライアント専用の別個のブランチにあるべきですか? (各クライアントは、開発ブランチから独自のブランチを持っています。)または、それらは別のリポジトリにあるべきですか?Gitフローとクライアント固有の機能

+0

興味深い質問です。しかし、それはgit-flowの問題か単なるgitの問題ですか? (私はgitとgit-flowの両方を新しくしているので、そこでは気にしません) –

+0

さて、私たちはgit-flow構造に従おうとしていますが、これは一般的にGitに当てはまります。例えば。そのようなケースを扱うための通常の慣習は何ですか? – Dario

答えて

2

私はあなたのベースとクライアントのための別のリポジトリを作成します。クライアントには、あなたのベースとなるリモートブランチを持つベースがあります。クライアントが新しいリリースを必要とする場合は、この方法がはるかに簡単です。すべてのクライアントを1つのリポジトリに配置する場合は、git flow release startを開始する前に、integration/developerブランチを手動で変更する必要があります。 これは、異なるクライアントに対して複数のリリースで作業する能力を制限します。面白い質問です。

4

すべてのクライアントが使用するコードベースがあり、クライアント固有の機能のための「ハック」があるようです。

私の意見では、すべての「ベース」コードはマスターブランチ上にあります。すべてのクライアントには、クライアント固有のブランチがあります。あなたの変更がどこで行われているのか注意してください。

多くの場合、クライアントブランチを再配置してください。基本的にはベースコードをベースコードに戻し、その上に特定の変更をすべて再生してください。

リベースは実際に動作するまではかなり混乱することがあります。

明快にするために連続コミット番号を使用する。現実にはコミットは数値ではありません。

 
Master is at commit 10 
\ 
    Branch has commits 10, 11, 12, 13, 14, 15 (notice it has commit 10 as well) 
| 
Master commits 16, 17 


When you rebase: 
    Master has 10, 16, 17. 
    Branch has 10, 16, 17, 11, 12, 13, 14, 15 

ここでの順序は非常に重要です。 Rebaseは分岐を10に戻し、16と17を適用し、11,12,13,14,15の変化を再生します。

この時点では、矛盾がない限り、分岐は最大マスターとの日付ANDにはクライアント固有の変更があります。

関連する問題