嵌套和独立的GIT回购,对于备份,如何?

时间:2012-06-29 22:37:05

标签: git nested backup

我想使用GIT作为备份解决方案。 我的公司和Centos服务器上有一个Windows共享网络。 每个用户都有一个唯一的共享文件夹,其中包含用户的所有文件。我们有2个开发人员,他们可以有一个git repo(s)。

如果子文件夹有git repos,如何使用户的整个文件夹成为GIT仓库,执行常用的git操作,提交,推送等,而无需导入?

注意:子模块不是解决方案,我不知道用户的主文件夹下有哪些存储库。

2 个答案:

答案 0 :(得分:2)

Git没有提供良好的备份解决方案有很多原因:

  • 你不能拥有嵌套的Git存储库 - 没有办法强制Git将嵌套的.git目录视为普通目录
  • 它不保存完整的权限和所有权
  • 其索引格式无法扩展为多个文件
  • 它不能很好地处理大文件(它耗尽了内存,因为它需要将整个文件放在内存中进行压缩 - 或者至少在一年前这是真的,也许它们已经修复了它)
  • 虽然压缩对于源代码是好的,但它对于虚拟机映像等并不是很好。
  • 备份到远程系统涉及首先在本地备份
  • 无法防止备份文件损坏

话虽如此,有一些原因可以解释为什么Git作为备份解决方案会很棒:

  • 每个备份都是一个完整的快照 - 您无需还原旧的完整备份,然后进行一些增量备份以获取最新文件
  • 非常好的重复数据删除性能
  • 一般来说空间效率很好
  • 支持有效地将备份传输到远程系统

我的建议:看看bup。它不是很成熟,它没有看到很多活跃的开发,它缺乏一些重要的功能,但它有很多希望。这是一个基于Git的开源备份程序。他们保留了Git做得很好的东西,但是替换/增加了Git做得不好的一些事情(用于备份)。

答案 1 :(得分:1)

你所要做的就是

git init

在每个用户的基础上。如果他们在那里存储他们的git存储库,那么git的范围将停留在那些具有.git文件夹的目录中。

目前尚不清楚你想要做的是将git repos提交给另一个git repo。我不建议这样做。