我的问题也许不寻常,让我解释一下,
我想git做增量备份,所以如果我找到删除第一个版本的方法,它将在第二个版本中丢失很多东西,几乎所有内容...
对我来说,更简单的方法是只删除.git /文件夹并创建一个新文件夹,但是仍然很繁琐(从20go到13go),并且花了我几个小时来保存。
所以这是我的问题:
?您知道我们是否可以使用git进行“递减”备份或“综合完整备份差异”备份,如果不能,您是否知道可以使用的工具?
谢谢
PS:我在git上看到了这个解决方案:
它清除了git repo中的日志历史记录,但实际上不是数据的历史记录,因此不是解决方案。
Git不执行«增量备份”。它确实«提交»。提交通常由一个哈希(将其视为地址)组成,该哈希使您可以检索其他内容,
最后一个通常是最有趣的,因为树有效地描述了整个目录/文件层次结构通过使用相同的hash-> content系统! (实际上,git被描述为建立在可寻址内容的文件系统之上的VCS。此外,当树中的文件没有不同时,git节省了一些空间(我相信),因为它们的地址相同,因此仅需要git数据库中的一个对象。)
这对您意味着什么
我可以想到几种不同的方法来实现(2)。第一个是git rebase -i @~2
(假设您只有两个提交),然后像在重新配置配方中一样删除第一个。这告诉git重写历史记录,但是跳过第一次提交。我希望这会失败,但是我愿意错了。
另一个选择是git filter-branch
,并且有数百个Internet页面介绍了如何使用它从整个历史记录中删除某些文件。
之后,git gc
应该有助于节省一些空间,但是只有在确定一切都可以完成之后,才可以这样做。
感谢您的回答。我没有找到方法,所以我只是选择擦除并重新创建我的仓库。