概要 - 分散型
分散管理
Gitを含む分散SCMの最も優れた機能の1つは、それが分散型であることです。これは、ソースコードの現在の先端を「チェックアウト」する代わりに、リポジトリ全体を「クローン」することを意味します。
複数のバックアップ
これは、集中型ワークフローを使用している場合でも、すべてのユーザーがメインサーバーの完全なバックアップを実質的に持っていることを意味します。これらのコピーのそれぞれは、クラッシュまたは破損の場合にメインサーバーを置き換えるためにプッシュアップすることができます。事実上、リポジトリのコピーが1つしかない場合を除き、Gitには単一障害点はありません。
あらゆるワークフロー
Gitの分散型特性と優れたブランチシステムにより、ほぼ無限のワークフローを比較的簡単に実装できます。
Subversionスタイルのワークフロー
集中型ワークフローは非常に一般的であり、特に集中型システムから移行する人々にとってはそうです。Gitは、最後にフェッチしてから誰かがプッシュした場合、プッシュを許可しないため、すべての開発者が同じサーバーにプッシュする集中型モデルは問題なく機能します。
統合マネージャーワークフロー
もう1つの一般的なGitワークフローには、統合マネージャーが関与します。統合マネージャーは、「承認された」リポジトリにコミットする単一の人物です。その後、多数の開発者がそのリポジトリからクローンし、独自の独立したリポジトリにプッシュし、インテグレーターに変更を取り込むように依頼します。これは、オープンソースまたはGitHubリポジトリでよく見られる開発モデルです。
独裁者と補佐官ワークフロー
より大規模なプロジェクトの場合、Linuxカーネルのような開発ワークフローがしばしば効果的です。このモデルでは、一部の人々(「補佐官」)がプロジェクトの特定のサブシステムの責任者となり、そのサブシステムに関連するすべての変更をマージします。別のインテグレーター(「独裁者」)は、彼/彼女の補佐官からのみ変更をプルし、その後、誰もがそこから再度クローンする「承認された」リポジトリにプッシュすることができます。