运行git fsck --full --strict
命令时出现以下问题:
error: sha1 mismatch ced885d12a0677f2db9025e1e684c72e67283fcd
error: ced885d12a0677f2db9025e1e684c72e67283fcd: object corrupt or missing
error: sha1 mismatch cf5a1546bd2de5611eaf6136fb5ca02b4e358bec
error: cf5a1546bd2de5611eaf6136fb5ca02b4e358bec: object corrupt or missing
error: sha1 mismatch cf5d9d5723014921370de479c54a73230c86a981
error: cf5d9d5723014921370de479c54a73230c86a981: object corrupt or missing
error: sha1 mismatch cf675ce5bc5eeb5937441c6a02976cf2fa40076b
error: cf675ce5bc5eeb5937441c6a02976cf2fa40076b: object corrupt or missing
error: sha1 mismatch cf7c5156cf127eb7141505946df51b2b57925a50
error: cf7c5156cf127eb7141505946df51b2b57925a50: object corrupt or missing
dangling commit 3468455f0d9d055bbe957744aa10e670469d3912
dangling commit daeec54632203157a70bae93b9d7c3290820c2f9
(more dangling commit messages)
(注意:我并不关心悬空提交消息。我关注的是sha1不匹配问题。)
我对此消息的解释是git-fsck从有效负载中重新计算sha1,但发现sha1与用于指定对象的sha1不同。存储库中没有丢失对象(我已经检查了w / git cat-file)。
奇怪的是,如果我再次运行命令,我仍然有sha1消息但是对于不同的对象:
error: sha1 mismatch 1452752024456a509540591c4879b3e3534f457e
error: 1452752024456a509540591c4879b3e3534f457e: object corrupt or missing
error: sha1 mismatch 16e08310d7182e97092d2783c911dbcf66538238
error: 16e08310d7182e97092d2783c911dbcf66538238: object corrupt or missing
dangling commit 3468455f0d9d055bbe957744aa10e670469d3912
注意:两次运行之间的存储库没有变化。
我们正在运行Linux,目前的git版本是:
$git --version
git version 1.7.2.2.170.g5c7f2
先前版本(1.6.5.rc2.18.g6d8b)中存在错误。这些git是使用gcc 3.4.4从源代码构建的。
但是,当我在另一台主机上复制存储库时,git fsck
报告完全没有问题。那里的git版本是1.7.2.1(由Fedora提供)。
我做了以下观察:
git gc
没有抱怨到目前为止的假设:
我们如何解决这个问题?
答案 0 :(得分:2)
一定是某种硬件问题。