【问题标题】:Is it safe to compress a GIT archive in regard to data loss or archive corruption?在数据丢失或存档损坏方面压缩 GIT 存档是否安全?
【发布时间】:2011-12-06 08:10:46
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: git git-gui


    【解决方案1】:

    Git 存储库格式稳健且经过良好测试。进行存储库压缩是安全的。

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

    【讨论】:

      【解决方案2】:

      如果您在谈论git gc,那么它是绝对安全的,不会丢失任何数据。

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

      正如 Greg 所说,始终备份您的存储库。

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

      【讨论】:

        【解决方案3】:

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

        我猜你所说的“压缩”是指git gc

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

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

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

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

        既然你担心数据安全,最好的办法是保证安全(这是一般的,不是特定于 git)是给自己一个定期备份 + 崩溃恢复过程。然后,不时给自己一个隔离的测试恢复环境(它可以像另一台计算机上的文件夹或虚拟机一样简单,具体取决于上下文)。然后在该环境中完全运行您的恢复程序,并检查您的宝贵数据和进程是否从备份中再次完全正常运行,而无需您的主存储。这样,您就知道如果主存储崩溃了,您仍然是安全的。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-10-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-12-26
          • 2011-01-20
          • 1970-01-01
          相关资源
          最近更新 更多