嵌套和独立的GIT仓库,如何备份?

3
我想将GIT作为备份解决方案。 我的公司有一个Windows共享网络和一个Centos服务器。 每个用户都有一个唯一的共享文件夹,其中包含用户的所有文件。 我们有2个开发人员,他们可以拥有git存储库。
如何使整个用户文件夹成为GIT存储库,并执行常规的git操作,例如提交、推送等,而不用导入子文件夹是否有git存储库?
注意:子模块不是解决方案,我不知道主文件夹下有哪些存储库。
2个回答

2
有很多原因说明为什么Git不是一个好的备份解决方案:
  • 你不能有嵌套的Git存储库——没有办法强制Git将嵌套的.git目录视为正常目录
  • 它不保存完整的权限和所有权
  • 其索引格式无法扩展到许多文件
  • 它无法处理大型文件(由于需要将整个文件放入内存进行压缩,所以会耗尽内存——或者至少在一年前是这样,也许他们已经修复了这个问题)
  • 虽然压缩对源代码很好,但对虚拟机映像等并不是很好。
  • 备份到远程系统需要先进行本地备份
  • 没有防止备份文件损坏的防御措施

话虽如此,Git作为备份解决方案也有一些优点:

  • 每个备份都是完整的快照——您不需要先恢复旧的完整备份,然后再恢复一些增量备份,以获取最新的文件
  • 极佳的去重性能
  • 通常具有良好的空间效率
  • 对于有效地将备份传输到远程系统具有良好的支持
我的建议是:看看bup。它还不够成熟,没有得到太多的积极开发,并且缺少一些重要的功能,但是它有很大的潜力。它是一个基于Git的开源备份程序。他们保留了Git做得好的东西,但替换/增强了Git备份时做得不好的一些东西。

"将备份到远程系统需要先进行本地备份":并非如此。我可以将 .git 目录分配到用户目录之外的文件夹中。git --git-dir=../repo --work-tree=. add ."没有防御备份文件损坏的措施"。关于这个问题的例子,以及其他系统备份实施的解决方案? - Jose Nobile
我正在尝试测试BUP,但文档太少了。我只有以下内容: bup help 用法:bup [-?|--help] [-d BUP_DIR] [--debug] [--profile] <command> [options...]常见命令: fsck 检查备份集是否损坏并添加冗余信息 ftp 使用类似ftp的客户端浏览备份集 fuse 将备份集挂载为文件系统 help 打印给定命令的详细帮助信息 index 创建或显示要备份的文件索引...你知道BUP的增量备份的常见工作流程或WIKI吗? - Jose Nobile

1

你所要做的就是

git init

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

不清楚您想要做的是将git存储库提交到另一个git存储库。我不建议这样做。


我希望Git将嵌套的.git目录视为普通目录,以备份为目的。 - Jose Nobile
我没有在用户备份目录中创建.git目录的写入权限。我正在尝试使用以下命令:git --git-dir=../repo --work-tree=. add foo - Jose Nobile

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