使用 git 存储库进行增量备份的最简单方法是什么git bundle
?
如果我只想备份一个分支,我可以按照以下方式做一些事情:
git bundle create foo last-backup..master
git tag -f last-backup master
但是,如果我想备份所有内容(包括所有分支)怎么办?
要回答评论中的问题:
严格来说,我不需要使用通常的 Git 捆绑包,只要解决方案满足以下属性即可:
每个增量备份都是一个文件。我可以将它存储在某个地方,后续增量备份不需要修改此文件。
该文件的大小大约等于自上次备份以来 Git 提交的总大小。二进制文件中的更改也可以有效地存储。
从那时起,完整备份 + 所有增量备份包含我需要自动重建存储库的所有内容,包括所有分支。
(举个简单的例子,在 git 存储库中简单地用最近更改的文件构建一个 tar 存档无法满足第二个要求,例如,如果发生了自动垃圾收集。)
理想情况下,我还希望有一个防白痴的系统:
- 我几乎可以对我的 Git 存储库进行任何完整备份,以及所有最近的增量备份,并且我可以简单地从备份中“提取”所有内容,并且存储库将是最新的。特别是,完全备份和增量备份之间是否存在部分重叠并不重要。
如果我只需要处理一个分支,Git 包就可以很好地满足这一切。