git - 从 Visual Studio 提交对 git 的更改时出现致命错误
问题描述
所以一切工作正常,直到昨天我写了一些代码并推送,但在 GitHub 中没有任何改变,所以我来添加评论行并提交,然后它说致命错误:
Git 因致命错误而失败。错误:“DataAccess/Concrete/EntityFramework/EfColorDal.cs”的无效对象 100644 342bad3922f69c8ae111f019ceffc916dd4982cb 错误:坏树对象 HEAD
首先路径指向另一个类,我删除并再次编写它,当我再次提交时,这次它显示了这个类,我认为它会继续下去。当我从互联网上用尽所有尝试时,我决定重新启动,再次打开时显示修复 D 盘中的错误,我的解决方案在哪里。它修复了大约一个小时,当它终于结束时,什么都没有改变。
当我运行 git --fsck 之类的代码时,我使用 gitbash 控制台执行代码,它说:
检查对象目录:100% (256/256),完成。
注意: HEAD 指向一个未出生的分支(主)
注意:没有默认引用
缺少树 4b825dc642cb6eb9a060e54bf8d69288fbee4904
由于我对 git 编码一无所知,所以我尝试了一些以前的帖子建议的东西,但都没有奏效。我的本地存储库在 C 盘中,它保存了昨天之前的代码,所以我可以再次编写代码,但不能保证它不会再次发生,所以我愿意提供任何帮助。谢谢
解决方案
再次打开时说Fixing errors in D disk
这是什么“它”?我认为“它”是您的操作系统。
它修复了大约一个小时,当它终于结束时,什么都没有改变。
我认为此时有几件事发生了变化。当您的操作系统由于意外的电源故障、磁盘错误或其他硬件问题而试图“修复”文件系统上的问题时,您的操作系统要做的事情之一就是删除各种文件。本质上,操作系统发现虽然创建了某个文件(因此它看起来是有效的),但它从未完成(因此它实际上是无效的)。操作系统对此问题的解决方案是删除该文件。
同时,Git 本身对某些文件删除非常敏感。几个崩溃后的删除是常见的,每一个都以特定的方式破坏 Git。该git fsck
命令检查这种损坏(以及其他):
删除包含分支数据的文件会产生诸如
notice: HEAD points to an unborn branch (master)
.删除包含内部树或 blob 对象的文件可能会产生有关丢失树和/或 blob 对象的消息。
D:
这是您的 Git 在此处生成的两条消息,因此我们可以得出结论,驱动器上的存储库可能已损坏,可能无法恢复。
我的本地存储库在 C 盘中,它包含昨天之前的代码...
存储库的 GitHub 副本也可能完好无损,并且与您创建的一样是最新的。这就是为什么(或者更好的副词是how)Git 作为一个分布式系统,非常有弹性:即使存储库的多个副本被销毁,其他副本仍然可以正常工作。
所以我可以再次编写代码,但不能保证它不会再次发生......
的确。是什么D:
导致它损坏到 Git 存储库无法工作并且操作系统决定修复它的驱动器? Git不是这里的问题。相反,D:
驱动器是。
推荐阅读
- amazon-web-services - AWS Codebuild - UPLOAD_ARTIFACTS 阶段出错:BucketRegionError:不正确的区域,存储桶不在端点的“us-east-2”区域中
- php - EventSourcing, Aggregates – 使用不变量而不加倍它们
- regex - PowerShell 5 和 7 之间的正则表达式区别
- sql - PostgreSQL 外键数组
- firebase-realtime-database - 如何防止我的用户将 Firebase 实时数据库下载为 json 文件
- arrays - 没有循环时数组大小有什么问题吗?
- c# - 试图解释从电能表返回的数据
- c# - 在 ASP.NET 中解析远程 XML
- python - Django 发送多个响应
- python - 带有嵌套列表的字典理解