複数のチームのGitワークフロー


12

Gitの使用を開始し(まだ使用していない)、ワークフローを定義します。

4つの異なるグローバルロケーションに4つのチームがあり、同じ製品を一緒に開発しています。各チームは製品のコードの一部を所有していますが、他のチームが所有するコードを変更する必要がある場合もあります。

そのような環境のGitワークフローに推奨事項はありますか?

私はすでにこの記事を見てきましたが、ここでのアプローチは「できるだけまれに追加のブランチを作成する」ことであり、「ユーザーストーリーごとのブランチ」アプローチをより重視しています。

また、この記事は素晴らしいアプローチを提示します。

マスターブランチ、定期的にマスターにマージされる各チームごとの永続的なブランチ、およびチームのブランチにマージされるユーザーストーリーごとのブランチを念頭に置いていました。それは理にかなっていますか、それともうまくいきませんか?


2
この分岐モデルを使用しますが、「機能ブランチ」を「ストーリーブランチ」と読んだ場合、2番目の記事で非常にうまくいきます。

2
10人が10種類の応答でこれに応答できると確信しています。これが私に役立つものです:githubでホストされている「現在の」リリースを示す1つのマスターリポジトリがあります。古いタグは分岐しています(タグ付けも機能します)。チームメンバーは、作業中のタスクのブランチを作成することをお勧めします。完了すると、マスター(またはマージが必要な場所)に対してプルリクエストを行い、他の誰かがプルリクエストをレビューし、それをマスターにマージする責任があります。また、マージされたブランチを削除する責任もあります。

2
さまざまなチームのコードベースを区別するために、サブモジュールに興味があるかもしれません。その後、お互いのコードベースを分岐し、コードのお互いの部分を編集するときにパッチを送信できます。
フレッドフー

@larsmans&carbonbasednerd-あなたのコメントは答えであるべきでした。彼らは私から賛成票を得たでしょう。* 8 ')
マークブース

回答:


8

Successful Git Branching Modelをご覧ください。これには、リリース全体にわたる機能開発のための優れた分岐戦略があります。

成功したgit分岐モデル

'develop'ブランチと 'featureブランチ'の間のチームブランチに1つの追加レベルを追加することで、同様のものを実装できます。また、チームブランチを持つことで、2つのチームがチームブランチ間をマージすることにより、より効率的にコラボレーションできるようになります。


0

各チームには独自のバージョンのリポジトリがあり、誰もがコミットする1つのグローバルリポジトリがあります(Linuxカーネルのように、Linusリポジトリはカーネルと中央リポジトリです)。

次に、製品コードを維持するために、@ larsmansが言ったようなサブモジュールを使用できます。各チームは主に彼らにとって最も重要な部分でのみ作業でき、他の部分で作業する必要がある場合、彼らはそれを行うことができますが、サブモジュールを更新することを覚えておく必要があり、これは問題のある場所です(gitを使用する場合、物事を間違えるのは非常に簡単なので、ありがたいことにそれらから逃げることも簡単です)。

しかし、あなたのチームはこれに慣れており、他のチームコードを変更していることを認識しているため、外部モジュールを変更する前に、サブモジュールの更新を覚えておくのが簡単です。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.