私はWeb開発会社のチームリーダーであり、Gitワークフローをチームに実装したいと考えています。ドキュメントと記事を読んで、次の構造が私たちに適していることがわかりました。
Bitbucketにリポジトリがあります。マスターブランチには、安定したコードのみが含まれていると見なされます。すべての開発者は、独自のブランチを作成し、独自のブランチに機能/バグ修正を実装する必要があります。コードの準備ができていると判断したら、(リベース、修正、チェリーピックなどを使用して)優れたブランチ履歴を作成し、それをBitbucketにプッシュして、マスターブランチへのプルリクエストを作成します。QAは機能を検証し、それを承認(または不承認)します。次に、コードを検証し、問題がない場合は、彼の作業をマスターにマージします(早送りまたはリベースしてコミット履歴を改善します)。
ただし、このスキームは、1人の開発者がブランチで作業する場合にのみ有効です。私たちの場合、1人の開発者がサーバー側(PHP)で作業し、もう1人がクライアント側(HTML / CSS / JS)で作業しているため、ほとんどの場合、1つのブランチに2人の開発者がいます。マスターのコミット履歴をクリーンに保つために、これら2つをどのように連携させる必要がありますか?
サーバー開発者はHTMLファイルの基本構造を作成し、クライアント開発者はこの構造を取得する必要があります。論理的には、サーバー開発者がブランチを作成し、クライアント開発者がサーバー開発者ブランチに基づいて独自のブランチを作成することになります。ただし、これは、サーバー開発者が自分のブランチをBitbucketで公開する必要があることを意味します。これにより、既に公開されているコミットをリベースまたは変更することができなくなります。
もう1つのオプションは、サーバー開発者が作業を終了し、適切なコミット履歴を含むブランチを公開してそれを忘れるまで待つことです。その後、クライアント開発者はこのブランチで作業を開始しますが、これにより時間遅延が発生し、さらに悪化します。
ワークフローでこのようなコラボレーションをどのように処理しますか?