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