【问题标题】:Nested and independent GIT repos, for Backup, how?嵌套和独立的 GIT 存储库,用于备份,如何?
【发布时间】:2012-06-29 22:37:05
【问题描述】:

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

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

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

【问题讨论】:

    标签: git nested backup


    【解决方案1】:

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

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

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

    • 每个备份都是一个完整的快照 - 您无需先恢复旧的完整备份,然后再进行一些增量备份来获取最新文件
    • 重复数据删除性能好得离谱
    • 总体来说空间效率不错
    • 支持高效地将备份传输到远程系统

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

    【讨论】:

    • “备份到远程系统需要先在本地备份”:并非如此。我可以在用户目录之外的文件夹中分配 .git 目录。 git --git-dir=../repo --work-tree=.添加 。 “无法防御备份文件损坏”。有关此问题的示例以及其他系统备份实施的解决方案?
    • 我正在尝试测试 BUP,但是文档太差了。我只有:bup help 用法:bup [-?|--help] [-d BUP_DIR] [--debug] [--profile] [options...] 常用命令:fsck 检查备份集是否损坏并添加冗余信息 ftp 使用类似 ftp 的客户端 fuse 浏览备份集 将备份集挂载为文件系统帮助 打印给定命令 index 的详细帮助 创建或显示要备份的文件索引... BUP 增量备份的常见工作流程是什么?
    【解决方案2】:

    你要做的就是

    git init
    

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

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

    【讨论】:

    • 我希望 Git 将嵌套的 .git 目录视为普通目录。用于备用物品。
    • 我没有在用户备份目录中创建 .git 目录的写入权限。我正在尝试使用一些作为:git --git-dir=../repo --work-tree=.添加 foo
    猜你喜欢
    • 1970-01-01
    • 2018-04-11
    • 2010-12-24
    • 2011-01-08
    • 1970-01-01
    • 2015-05-07
    • 2015-06-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多