拉动镜像git存储库?

时间:2010-05-03 07:43:50

标签: git mirror

我想知道是否有一种简单的方法,比如简单的cron作业,定期从远程git存储库到本地只读镜像用于备份目的?

理想情况下,它会拉动所有分支和标签,但主/主干/头部就足够了。

我只需要一种方法来确保如果主git服务器死机,我们有一个备份位置,我们可以手动故障转移到。

3 个答案:

答案 0 :(得分:59)

首先使用

创建一个镜像
git clone --mirror git@somewhere.com:repo.git

然后设置这样的cron作业:

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

这将每分钟备份变更集。也许你想要不那么频繁地做这件事。

答案 1 :(得分:9)

正如Andrew所说,git repo的每个克隆都是repo的完整备份。也就是说,如果您想要将某些内容自动备份到特定计算机上,您可以在备份服务器上创建一个裸仓库,并将其与所有要备份的分支一起推入其中,以便最初填充它。然后只需在“主”仓库上设置一个更新后挂钩,这样只要有提交的提交,它就会继续并将它们推送到备份仓库。不需要cron作业或rsync,它几乎是一个真实的副本。

答案 2 :(得分:-3)

您是否可以直接访问服务器?然后你可以rsync .git目录