とある日、git pushしようとすると、
Checking object directories: 100% (256/256), done.
error: object file .git/objects/53/b81edd36949683b4e63733d17ecf8337305875 is empty
error: sha1 mismatch 53b81edd36949683b4e63733d17ecf8337305875
error: 53b81edd36949683b4e63733d17ecf8337305875: object corrupt or missing
missing blob 53b81edd36949683b4e63733d17ecf8337305875
と出てpushできなかった
結論だけ先に言うと
git fsck reporting “sha1 mismatch”
It must have been some sort of hardware problem.
──それは何らかのハードウェア問題であったに違いない。(Google翻訳)
という事だったのでリポジトリ作り直しました・・・
調べた結果
こういう時は、git fsck
とかgit gc
あたりを使えばいいらしい
object is empty を対処してみる
how to fix GIT error: object file is empty?
とりあえずStackOverflowを参考に、問題になってるオブジェクトを消してみる
$ rm .git/objects/53/b81edd36949683b4e63733d17ecf8337305875
$ git fsck --full
Checking object directories: 100% (256/256), done.
missing blob 53b81edd36949683b4e63733d17ecf8337305875
sha1 mismatch
は消えたらしい
missing blob が消えない
その先もなんやかんやしたけど、延々とmissing blob
が出るから諦めてリポジトリ作り直した
作業してた領域がDockerのDataVolume内だったから原因が気になる・・・