我经常备份部分硬盘驱动器。我不想讨论我这样做的原因。我想讨论的是,复制.git目录时备份特别慢。即使是简单的项目在这个.git目录中也有大约 5000 个文件!我正在运行多个这样的项目。它们加起来只有大约 60 mb 左右。git 目录的文件比我的项目多!这对于复制来说非常低效。这对于复制来说非常低效:我认为所有这些.git目录丢失了大约 90% 的时间。
有没有办法设置 git 以有效地将所有内容集成到一个大文件中?或者可能是 10 到 50。但不是 5000。
就像@VonC 所说的,git bundle 是一个很好的方法,但需要一些工作才能到位。
更简单的做法是git gc在复制之前调用存储库。
这样文件.git\objects夹中的所有小文件都将被打包成几个大包文件,以便快速复制。
PS:你也可以做一个git stash(用好的选项)来保存.git文件夹中的所有当前更改,这样,你只需要保存这个.git文件夹(而不是工作目录)。备份会更快!复制后,您将能够使用命令git reset --hard HEAD(和stash pop,如果需要)从 git 数据库重新填充整个工作目录。