【问题标题】:so many files in .git directory. slow backing up.git 目录中有这么多文件。缓慢备份
【发布时间】:2020-02-10 07:25:45
【问题描述】:

我经常备份我的硬盘驱动器的一部分。我不想讨论我这样做的原因。我想讨论的是复制.git 目录时备份特别慢。即使是简单的项目在这个.git 目录中也有大约5000 个文件!我正在运行多个这样的项目。它们加起来只有约 60 mb 左右。 git 目录的文件比我的项目多!这对于复制来说是非常低效的。这对于复制来说效率非常低:我认为所有这些 .git 目录都会丢失大约 90% 的时间。

有没有办法设置 git 以有效地将所有内容集成到一个大文件中?或者可能是 10 到 50。但不是 5000。

【问题讨论】:

    标签: git backup


    【解决方案1】:

    就像@VonC 所说,git bundle 是一个很好的方法,但需要一些工作到位。

    更简单的做法是在复制之前调用存储库中的git gc

    这样.git\objects 文件夹中的所有小文件将被打包成几个大包文件以非常快速地复制。

    PS:你也可以做一个git stash(有好的选项)来保存.git文件夹中的所有当前更改,这样,你只需要保存这个.git文件夹(不再需要工作目录)。备份会更快!复制后,您将能够使用命令git reset --hard HEAD(和stash pop,如果需要)从 git 数据库重新填充整个工作目录。

    【讨论】:

    • 太棒了。 git gc 将我的 git 目录从 3800 个文件减少到 18 个文件。正是我需要的。
    【解决方案2】:

    您不应尝试备份所有 .git 文件夹中的所有文件。

    您只能生成 一个 文件 par git repo 以备份该文件:请参阅git bundle
    我描述了it here,它可以生成一个full or incremental backup(增量示例见我的backup script

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-01
      • 2015-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多