43

我想知道是否有一种简单的方法,即像一个简单的 cron 作业,定期远程 git 存储库拉到本地只读镜像以进行备份?

理想情况下,它会拉出所有分支和标签,但 master/trunk/head 就足够了。

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

4

3 回答 3

62

首先创建一个镜像

git clone --mirror git@somewhere.com:repo.git

然后像这样设置一个cron作业:

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

这将每分钟备份一次变更集。也许您想减少执行此操作的频率。

于 2010-05-03T08:28:43.683 回答
10

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

于 2010-05-03T15:45:17.900 回答
-3

您可以直接访问服务器吗?那么你可以rsync只是.git目录

于 2010-05-03T08:31:27.977 回答