如何防止我的 git 损坏?

How do I prevent my git from corrupting?

我正在 VMWare 的虚拟 ubuntu 16.04 环境中处理一个 android 工作室项目。 git 设置正常,大部分时间都能正常工作,但我偶尔(过去两个月至少三次)得到损坏的 git。

error: object file .git/objects/bb/2b004268181780ddea02ea4313142fc36a0541 is empty
error: object file .git/objects/bb/2b004268181780ddea02ea4313142fc36a0541 is empty
fatal: loose object bb2b004268181780ddea02ea4313142fc36a0541 (stored in .git/objects/bb/2b004268181780ddea02ea4313142fc36a0541) is corrupt

我不是在问如何修复这些错误,我已经修复了几次,但它们一直在发生,修复起来真的很烦人而且很费时间。是什么导致了这种情况?

我在 git 的日常是打开 VMWare,登录到我的虚拟机,然后打开 android studio,直到结束我才接触 git天。我以两种方式之一结束这一天。

  1. 我在 Android Studio 上单击 File -> Exit,git 提交内容,然后关闭 VMWare。然后我关闭了桌面。
  2. 与 1 相同,只是我让 VMWare 保持打开状态,那天我没有 git 提交,Ctrl-alt-del 并将桌面设置为锁定模式。

或者两者的一些变体。

我通常在一天结束时尝试提交时遇到损坏。

其他 VMWare 设置:

我创建了一个新的 VM,其大小是原来的两倍,而且此后问题没有发生,所以我将继续并假设这就是答案。如果我再次看到它,我会更新它。

对于那些有问题并且磁盘大小不是问题的人,这可能会有所帮助:我正在关闭我的机器并且我不断收到 git 回购错误(我还注意到启动时有多个日志恢复)。然后我尝试通过文件菜单发送关机信号;它表明我有打开的文件。我怀疑关机允许这些文件关闭;我怀疑其中一些是 git 回购文件。

这消除了日记错误,到目前为止我还没有看到任何 git 回购错误。机器菜单下的 ACPI 关闭菜单选项可能更好。