在数据丢失或存档损坏方面压缩GIT存档是否安全?

时间:2011-12-06 08:10:46

标签: git git-gui

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

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

通常情况下,GIT抱怨档案中有很多项目,为了保持档案的快速和优化,建议我压缩档案。

这样做是否安全?压缩存档的优势是否会超过压缩可能导致的最终问题(甚至值得)?

我特别担心潜在的档案损坏或我可能不知道的已知问题/错误。

3 个答案:

答案 0 :(得分:3)

Git存储库格式非常强大且经过了很好的测试。进行存储库压缩是安全的。

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

答案 1 :(得分:2)

如果您正在谈论git gc,那么它非常安全,不会丢失任何数据。

Git会定期运行它,但在repo超过一定大小之前它不会执行任何操作。

正如格雷格所说,总是备份你的回购。

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

答案 2 :(得分:0)

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

我想通过“压缩”你的意思是git gc

操作与环境一样安全(机器稳定性,RAM和存储可靠性)。

尽管如此,所有计算机都存在一个缺点:存储空间。 请注意,git gc有时(矛盾地)暂时increase the size of the repository(由于解包了可能被删除但尚未移除的对象)。 如果机器的存储空间不足,这可能会妨碍操作成功,或妨碍连续工作。此外,git gc可能需要大量内存(例如,大于磁盘存储库大小),如果系统无法应对,则会失败。

那就是说,我从来没有看到存储库损坏似乎是由git gc引起的。

如果您的备份是克隆存储库,请注意:某些项目(分支,轻量级标记,常规标记,配置,挂钩等)不会在存储库之间自动传输,有些是部分或仅在某些情况下,复杂规则。

由于您担心数据安全,因此安全的最佳选择(一般而言,不是特定于git)是为您自己定期备份+崩溃恢复过程。然后,不时给自己一个独立的测试恢复环境(它可以像另一台计算机上的文件夹或虚拟机一样简单,具体取决于上下文)。然后在该环境中完全运行您的恢复过程,并从备份中检查您的宝贵数据和流程是否已经完全再次正常运行,而无需您的主存储。这样,您知道如果主存储器崩溃,您仍然是安全的。