とある日、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あたりを使えばいいらしい

9.7 Gitの内側 - メインテナンスとデータリカバリ

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内だったから原因が気になる・・・