web-dev-qa-db-ja.com

プルしてgitリポジトリをミラーリングしますか?

バックアップの目的でリモートgitリポジトリからローカルの読み取り専用ミラーに定期的にpullする簡単な方法、つまり単純なcronジョブのようなものがあるかどうか疑問に思っていますか?

理想的には、すべてのブランチとタグをプルしますが、マスター/トランク/ヘッドで十分です。

マスターgitサーバーが停止した場合に、手動でフェイルオーバーできるバックアップ場所があることを確認する方法が必要です。

42
corydoras

まず、ミラーを作成します

git clone --mirror [email protected]:repo.git

次に、次のようなcronジョブをセットアップします。

*/1 * * * * gitbackup cd /backup/repo.git && git fetch -q --tags

これは毎分チェンジセットをバックアップします。たぶん、これをあまり頻繁に実行したくないでしょう。

62
gregor

Andrewが指摘したように、gitリポジトリのすべてのクローンは、リポジトリの完全なバックアップです。つまり、特定のマシンに何かを自動的にバックアップしたい場合は、バックアップサーバーにベアリポジトリを作成し、最初にデータを追加するために、バックアップするすべてのブランチをそのリポジトリにプッシュします。次に、「メイン」リポジトリに更新後のフックを設定するだけで、コミットがプッシュされるとすぐに、コミットがバックアップリポジトリにプッシュされます。 cronジョブやrsyncは必要なく、ほぼライブコピーです。

9
J. Cordasco