概要 - 分散型
分散型
分散型SCMの最大の機能の1つは、Gitも含まれますが、それが分散型であることです。つまり、ソースコードの現在の最新部の「チェックアウト」を実行するのではなく、リポジトリ全体の「クローン」を実行します。
複数のバックアップ
つまり、集中型ワークフローを使用している場合でも、各ユーザーは本質的にメインサーバーの完全なバックアップを保持しています。クラッシュまたは破損が発生した場合、これらのコピーのいずれかをプッシュしてメインサーバーを置き換えることができます。実際、リポジトリのコピーが1つしかない場合を除き、Gitには1つの障害点はありません。
あらゆるワークフロー
Gitの分散特性と優れたブランチングシステムのおかげで、ほとんど無限の数のワークフローを比較的簡単に実装できます。
Subversionスタイルのワークフロー
集中型ワークフローは非常に一般的です。特に、集中型システムから移行するユーザーにとって。Gitでは、フェッチして以来誰かがプッシュした場合にプッシュすることはできません。そのため、すべての開発者が同じサーバーにプッシュする集中型モデルは正常に機能します。
統合マネージャーワークフロー
もう1つの一般的なGitワークフローには統合マネージャーが関わります。これは、「正式版」のリポジトリにコミットする1人の個人です。その後、多くの開発者がそのリポジトリからクローンし、独自の独立したリポジトリにプッシュし、インテグレーターに変更のプルインを依頼します。これは、オープンソースまたはGitHubリポジトリでよく見られる開発モデルのタイプです。
独裁者と中尉のワークフロー
Linuxカーネルのようなより大規模なプロジェクトの場合、Linuxカーネルのような開発ワークフローが効果的なことがよくあります。このモデルでは、一部の人(「中尉」)はプロジェクトの特定のサブシステムを担当し、そのサブシステムに関連するすべての変更をマージします。別のインテグレーター(「独裁者」)は、中尉からのみ変更を引き出し、その後、「正式版」のリポジトリにプッシュします。その後、誰もがそこから再びクローンを作成します。