考虑到数据丢失或归档损坏,压缩GIT归档是否安全?



我使用GIT GUI来跟踪我们日常开发任务和代码/文件的更改。

目前我进入web开发,主要是网站。我对每个网站文件夹使用GIT存档,其中包含与项目相关的所有文件和文档。

GIT经常抱怨归档中有很多项目,为了保持归档的快速和优化,它建议我压缩归档。

这样做安全吗?压缩归档文件的好处是否会超过压缩可能导致的最终问题(是否值得这样做)?

我特别担心潜在的存档损坏或我可能没有意识到的已知问题/错误。

Git存储库格式是健壮的,并且经过了很好的测试。执行存储库压缩是安全的。

话虽如此,备份总是是个好主意。

如果你说的是git gc,那么它是完全安全的,没有数据丢失。

Git会定期运行它自己,但是它不会做任何事情,直到一个repo超过一定的大小。

就像Greg说的,总是要备份你的repo。

git gc—prune是另一回事。这将从repo中删除所有未引用的对象,这可能不是您想要的(您可能希望稍后恢复其中一个)。

TL;DR:是的,执行git存储库优化是安全的,但是要做备份并测试它们。

我猜你说的"压缩"是指git gc

在给定环境(机器稳定性、RAM和存储可靠性)的情况下,操作是尽可能安全的。

然而,在所有计算机器中都有一个弱点:存储空间。请注意,git gc有时会(矛盾地)临时增加存储库的大小(由于拆包的对象是候选的删除,但尚未删除)。如果机器的存储空间不足,这可能会阻止操作成功,或妨碍连续工作。此外,git gc可能需要大量的内存(例如,大于磁盘上存储库的大小),如果系统无法处理,则会失败。

也就是说,我从未见过由git gc引起的存储库损坏。

如果你的备份是一个克隆存储库,要小心:有些项目(分支、轻量级标签、常规标签、配置、钩子等)不会在存储库之间自动传输,有些是部分的,或者在某些情况下只是,有复杂的规则。

既然你担心数据安全,最好的安全方法(这是一般的,不是git特有的)是给自己一个定期的备份+崩溃恢复过程。然后,不时地给自己一个独立的测试恢复环境(根据上下文,它可以像另一台计算机上的文件夹或虚拟机一样简单)。然后在该环境完全中运行恢复过程,并检查您的宝贵数据和进程是否从备份中完全恢复功能,而不需要主存储器。这样,你就知道如果主存储器崩溃,你仍然是安全的。

最新更新