私の会社は Linux で Gitolite をセットアップしており、2 番目の Linux サーバーへのコミットごとにクラッシュが発生した場合に備えて、サーバーのバックアップをセットアップしたいと考えています。
コミットするたびに Gitolite サーバーをバックアップするにはどうすればよいですか? 誰かがこれをやっていますか?
まず、git のバックアップについてあまり心配する必要はありません。- あなたのプロジェクトで作業している全員が、自分のボックスに完全なクローンを持っています。- したがって、十分なバックアップが必要です。;)
しかし、プッシュのたびに別の公式リポジトリを更新したいと考えています。この場合、おそらく最も簡単な方法は、各プッシュの後に実行され、変更を 2 番目のリポジトリにプッシュする小さなサーバー側フックを作成することです。
おそらく post-receive フックを使用したいと思うでしょう。詳細については、こちらまたはこちらをご覧ください。
例:
#create repositories
git init a
git init --bare b
git init --bare c
#add the hook in "b"
echo -e '#!/usr/bin/bash\nread old new ref\ngit push ../c $ref' >>b/hooks/post-receive
chmod +x b/hooks/post-receive
#create a commit in "a"
cd a
echo foo >test
git add .
git commit -m testcommit
#push it to "b"
git push ../b master
#notice the "remote:..." output of the hook
#find the commit in "c"
cd ../c
git log
これにより、3 つのリポジトリが作成されます。コミットしa
てb
フックにプッシュするとc
、 にもプッシュされます。