私が正しくあなたの質問を読んでいる場合、Server B
とServer C
の唯一の目的は、右、バックアップServer A
にありますか?その場合
、あなたの代わりにB
とC
へA
からプッシュし、A
からpull
からServer B
とServer C
を伝える必要はありません。だからあなたのポスト受けるフックの内容はserver_b
とserver_c
がA
上のリモコンを知られていると仮定し
git push --mirror server_b
git push --mirror server_c
だろう。 --mirror
フラグの説明については、git push
のドキュメントを参照してください。
あなたはB
とC
がアクティブな部分になりたい場合は、定期的にgit fetch A
にcronジョブを設定。
別のアプローチは、3つのURL持っているあなたのローカルレポでリモートを定義することです:あなたは通常git push
を使用してA
にあなたの仕事を押すと、今
[remote "multi"]
url = server_a/repo.git
url = server_b/repo.git
url = server_c/repo.git
を、単に
git push --mirror multi
を行います
A
、B
、およびC
のすべてのローカルを同時にプッシュする
もう一つ質問です:なぜあなたはまったくB
とC
にプッシュしていますか?あなたがバックアップの理由からそれをやっているようです。すべてのレポ(作業コピー、A
のいずれか、...)に開発の完全な履歴が含まれていることをご存知ですか?一つの中心的な歴史を持つSVNのようなものではありません。 GitはDVCSであり、すべての作業コピーは完全な履歴を持っています。
Gitを使って、すべて reposが同時に破壊された場合、履歴は失われます。それ以外の場合は、プロジェクト履歴を含むレポが常に1つ以上表示されます。それに関するいくつかの注意については、Pro Gitの導入の章を参照してください。
こんにちは、あなたの提案は素晴らしいです!これは私が探していたものです。とてもおかげさまで、ありがとうございました。あなたの質問について "別の質問は、なぜあなたはBとCに何を押しつけるのですか?"私はクラウドサーバとロードバランサで働いています。サーバーA、B、Cサーバーは同じWebサイトのコンテンツです。 – Finau