Git repo腐败的原因以及如何避免

时间:2013-11-29 06:48:24

标签: git

我最近一直在打git repo corruptions。只要我的虚拟机在保存状态时无法从保存状态恢复或出错,就会发生这种情况。每当它发生时,一些对象变空(提交,树,blob)

为澄清此事,其他非git数据还可以。只有git版本控制的数据才遇到这个问题。

我想了解腐败是如何发生的。该对象只是一个压缩内容,所以,即使它被保存到磁盘,它是如何变空的?

另外,请提出如何防止这种情况发生的建议。我试图有一个本地裸仓库,但即使是裸仓库也被破坏了。大多数时候我使用我的虚拟机进行离线操作,并且没有网络连接。因此,外部回购不是一种选择。

非常感谢任何指针。

1 个答案:

答案 0 :(得分:2)

为避免这种情况,您可以在保存计算机状态之前,创建当前仓库的完整 bundle git bundle):

cd /path/to/your/repo
git bundle create ../repo.bundle --all

这样,如果您的git repo已损坏,您可以从该一个文件中将其克隆回来:

git clone repo.bundle