3

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

如果子文件夹有 git repos,我如何才能使用户的整个文件夹成为 GIT 存储库,执行通常的 git 操作、提交、推送等,而不导入?

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

4

2 回答 2

2

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

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

话虽如此,Git 作为备份解决方案非常棒的原因有以下几点:

  • 每个备份都是一个完整的快照——您不需要在恢复旧的完整备份之后再进行一些增量备份来获取最新文件
  • 非常好的重复数据删除性能
  • 总体来说空间效率不错
  • 对有效地将备份传输到远程系统的强大支持

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

于 2012-06-30T19:08:28.260 回答
1

你所要做的就是

git init

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

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

于 2012-06-29T22:48:18.477 回答