在S3上备份所有Git存储库的最佳实践是什么?

3
我正在使用 Bitbucket Cloud 作为我的git主机,拥有约200个仓库。我希望每天备份 所有的仓库(包括所有分支) 到 AWS S3 存储桶上。
我们是同一账户下的多人团队(100+ 个仓库),虽然没有人有删除仓库的权限,但我们都可以通过执行 git reset --hard <init_commit> 然后 git push --force 来删除仓库的内容。根据 Bitbucket 备份 ,我们观察到没有自动备份,因此我希望创建一个备份。
我考虑使用 AWS CodeBuild 进行备份,但如果我从文档中正确理解,它只适用于项目的最多12个仓库。
由于我相信我不是第一个尝试解决这个问题的人,所以我正在努力了解这种要求的最佳实践方法?
默认情况下,我希望避免使用 Lambda + Bitbucket API + CloudWatch。
提前感谢您的帮助。

  1. 为什么要保留历史记录?这就是git的用途。
  2. 为什么不使用Bitbucket自己的备份工具呢?
- undefined
我们的备份仅用于灾难恢复目的。我们无法使用备份来恢复被终端用户删除的存储库。1. 我们只有少数人拥有完全访问权限,如果其中一个人选择删除(没有人可以删除存储库),他可以删除所有存储库的内容。2. 我不知道有这样的工具,你有任何链接吗? - undefined
这里是Atlassian关于备份策略的比较,并附有每个策略的文档链接。请查看底部的表格。除非您正在使用他们的云解决方案,否则我不确定这是否相关。 - undefined
如果你不信任你的同事,你可以更改权限,只允许特定人员推送到特定分支,或者需要获得批准。这本质上就是拉取请求的作用。 - undefined
1个回答

2
一个简单的备份方法是使用 git bundle:它会为每个仓库生成 一个 文件(包含所有历史记录和分支)。
一旦你在本地有了这些文件,就可以将它们保存到 S3:每个仓库一个文件比推送许多小文件更容易/更快捷。

1
这与像https://github.com/marketplace/cloudback/这样的第三方备份服务有所不同。 - undefined
  1. github.com/marketplace/cloudback 似乎只支持 GitHub 存储库。你知道有没有类似的服务可以与 Bitbucket 配合使用吗?
  2. 关于 git bundle,如果有人执行了 git reset --hard ***** 然后再执行 git push --force,它将无法起到帮助作用。
- undefined
@helpper 1. 不,我只是举了一个云备份作为第三方服务的例子,但它并不免费,所以在你的情况下可能不是一个好的解决方案。(我猜)2. 我更多地使用git bundle来对现有仓库进行快照,所以无论对该仓库做了什么样的推送都无关紧要。 - undefined

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接