誰もやらんかもしれないけど
@ WSL の Ubuntu の bash から使う git
A Git for Windows の Git Bash から使う git
これらを混ぜると危険

Aでサブモジュールを含むローカルコピーを取ってきた後
サブモジュールを取り直す時に
間違って@で取ると
以降 git status --porcelain が失敗する

TortoiseGit が Git for Windows に依存するので
TortoiseGit でのいろんな操作も失敗するようになる

ようやく気づいたよ、、

修復方法はサブモジュールを
Git for Windows のGit Bash から取り直すこと