「サーバー」の意味によって異なります。Gitは中央サーバーがなくても問題なく動作しますが、多くのチームは中央リポジトリがあると便利だと感じています。
「サーバー」が「サーバーソフトウェアのインストール」を意味する場合、gitは、sshを介して、またはファイルシステム上で、特別なソフトウェアがなくても(中央リポジトリであるかどうかにかかわらず)機能します。
可能なワークフローについては、このドキュメントを参照してください
共通リポジトリを使用したワークフロー
多くの人が使用するワークフローは、すべての開発者が変更を共通のリポジトリに「プッシュ」(送信)し、そのリポジトリからすべての変更を取得することです。このようなもの:
- 開発者Aが中央にプッシュ
- 開発者Bが中央にプッシュ
- 開発者Cがプル(AとBから変更を取得)
- 開発者Aがプル(Bから変更を取得)
- ..。
この場合、中央リポジトリは、開発者のコンピューターの1つ、github、またはその他の場所に置くことができます。
メールによるワークフロー
サーバーなしで、メールを使用するだけでgitを使用することもできます。この場合、フローは次のようになります。
- 開発者Aは変更をメールとしてチームに送信します
- 他の開発者は、電子メールからの変更を適用します
これは、半自動化された方法でも実行できます
中央サーバーなしのワークフロー
複数の「リモート」リポジトリを使用するようにgitを設定できます。注意点は、チェックアウトされているリポジトリ(つまり、誰かが作業している開発者のコピー)にプッシュしてはならないということです。したがって、この場合、フローは次のようになります。
- 開発者Aが変更を加える
- 開発者Bが変更を加える
- 開発者CはAから変更をプルします
- 開発者CはBから変更をプルします
- 開発者BはAから変更をプルします
- ..。
- 誰もプッシュしてはいけません
私見このタイプのワークフローは、すぐに混乱と故障につながります。