Macの空きが3GBになった。犯人は書類ではなく、消し忘れた`.git`1個だった

空き容量の異変に気づいたのは、自分で見に行ったからではなく、通知が来たときだった。「なんで?」と思ったし、最初は原因の見当もつかなかった。

1. 書類を疑って、外した

空き3.0GB、使用率100%(460GBのうち422GB使用)。ストレージの内訳は「書類」が大半を占めると表示していた。実際に`~/Documents`の中を覗いてみたが、これといって容量の大きいフォルダは見当たらない。念のため実測すると157MBしかなかった。

表示を信じて疑わなかった分だけ、この157MBという数字を見たときは「じゃあ何なんだ」という気味の悪さが残った。

2. 調べたのに見つからなかった

「こんなに容量を圧迫している原因は何だ」とClaude Codeに聞いた。指示を受けて、ターミナルで最初にこう打たせた。

du -sh ~/* | sort -rh

結果はホーム全体で48GB。だが実際のホームは370GB。320GBが消えた。

原因は単純で、`*`は隠しフォルダ(ドットで始まる名前)にマッチしない。正しくはこう。

du -sh ~/.[!.]* | sort -rh

`~/.git` 319GB。

正直に言うと、この数字も一発で見つけたわけではない。出力の中に紛れていて、最初は流し見で通り過ぎかけていた。それでも319GBという桁が目に止まって、二度見してようやく気づいた。調べ方を直しても、見る側が雑だったら同じことが起きる。

ここが一番の学び。「調べたのに見つからない」ときは、調べ方が対象を取りこぼしている可能性を先に疑う。数字が合わないこと自体が手がかりだった(370GB対48GB)。

原因を突き止められたのも、対処できたのも、Claude Codeを入れていたからだ。ただ皮肉なことに、当時のログをたどると、発端になった`git init`にも同じClaude Codeが関わっていた可能性がある(誰が実際にコマンドを打ったかは特定できていない。詳しくは後述)。

3. なぜ319GBまで膨らんだのか

`~/.git`の中身は、ほぼ全部が中断された一時ファイルだった(86個・289GB、1個あたり1.6〜23GB)。

仕組みはこう。

1. gitは未整理オブジェクトが6,700個を超えると自動で圧縮(GC)を始める

2. ここには33.6万個あった。しきい値の50倍

3. ホーム直下のリポジトリなので、圧縮対象に`Library`(26GB)と`Movies`(22GB)が丸ごと入る

4. gitコマンドが走るたびにこの巨大な圧縮が起動し、毎回同じところで失敗する

5. 失敗した一時ファイルをgitは自動削除しない。残骸が積み上がる

つまり使えば使うほど太る構造。3ヶ月動き続けていた。

4. なぜそこに出来たのか(分単位で追えた)

ログとファイルのタイムスタンプから、4月8日の夜が復元できた。

– 23:28 あるプロジェクトに`.gitignore`を作成

– 23:54 ホームに`.git`が誤作成(ここが事故)

– 翌0:08 正しい場所にリポジトリを作り直し

つまり、間違いには気づいていた。作り直してもいた。消し忘れただけ。

直そうとした形跡はあるのに、なぜ止めを刺さなかったのか。ここが一番ひっかかった。理解しないまま進めた結果が、3ヶ月後の通知になって返ってきた。

5. 本質:`git init`は”対象”ではなく”立ち位置”に作られる

自分は「ホームで作業していたのが悪かった」と思ったが、少し違った。

– ファイル操作は絶対パスで届く。立ち位置がどこでも`~/Downloads`は整理できる

– `git init`はパスを指定しなければ立ち位置に作る

事故は「ホームで作業したこと」ではなく、整理の”対象”とツールの”立ち位置”が同じだったことで起きた。この2つを分けておけば、同じ操作ミスをしても中身の薄いフォルダに落ちるだけで、肥大しようがなかった。

6. 自分がやったこと

作業用の立ち位置フォルダ`~/Projects/housekeeping/`を作り、ファイル整理はそこから絶対パスで対象を指定するようにした。新しくリポジトリを作るときは`git init <パス>`で場所を明示し、作り直したときは古い方を消したか確認するようにした。月1でこれを打つ。

ls -d ~/.git 2>/dev/null && echo "⚠️ 異常" || echo "正常"

結果、321GB解放。空きは3.0GBから324GBになった。

Claude Codeを入れていたから調べられたし、対処もできた。同時に、あの`git init`にも同じClaude Codeが関わっていた可能性があり、無関係だったとは言い切れない(誰が実際にコマンドを打ったかは、今も特定できていない)。便利さと危うさは、同じ道具の裏表だった。3ヶ月「消し忘れ1個」に気づかなかったのは、仕組みを理解しないまま進めていたからだ。月1の`.git`チェックは、もう今日から始めている。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

中小企業診断士。
医療業界で法人営業として10年以上、提案営業・関係構築・現場課題の整理に携わる。

現在は、中小企業向けにAI活用・業務効率化を入口に、システム設計、営業・事業計画の整理まで含めた伴走支援を行っている。
ChatGPTなどのAIを、難しい理論ではなく現場で使える形に落とし込むのが持ち味。

中小企業の売上拡大・AI活用・業務改善のご相談は、Stepwise Partnersの無料相談ページからどうぞ。

コメント

コメントする

CAPTCHA


目次