当我的磁盘在访问 git 存储库时报告了一长串“不可恢复的读取错误”后,我担心我对其他存储库进行了一些推送,这些存储库可能会将错误的内容转发给它们。顺便说一句,在使用提交/推/拉访问存储库时,没有任何 git 命令报告任何错误。但是在访问存储库后,我总是会收到dmesg磁盘上出现不可恢复的读取错误的新条目。所以肯定有一些文件受到影响,但可能内容是多余的。
我知道:
git fsck --full
Run Code Online (Sandbox Code Playgroud)
将检查回购协议,但我想问:
没有报告任何错误(也许一些悬空提交/斑点在我读到时并不重要)意味着完整的存储库处于有效状态?特别是不仅引用和文件存在,而且所有文件的内容都有效?我找不到的是,有类似校验和的东西可以验证 git 数据库中存储的所有对象的完整内容。
没有报告任何错误(也许一些悬空提交/斑点在我读到时并不重要)意味着完整的存储库处于有效状态?
是的。git fsck --full(--full默认情况下)检查所有对象及其连接。
特别是不仅引用和文件存在,而且所有文件的内容都有效?我找不到的是,有类似校验和的东西可以验证 git 数据库中存储的所有对象的完整内容。
Git 已经内置了校验和。
Git 中的一切都是对象。每个对象都有一个 ID。ID 是内容和连接的校验和。如果内容或连接发生变化,则 ID 不再有效。
例如,提交 ID 基本上是...的校验和
如果其中任何一个发生变化,ID/校验和将不再有效。这是一个非常优雅的系统。
如果该磁盘仍然出现错误,您确实应该更换该磁盘。
| 归档时间: |
|
| 查看次数: |
4677 次 |
| 最近记录: |