未追跡ファイルの削除
作業ツリーには、git が一度もコピーを取っていないファイルがたまっていきます。走り書きの
メモ、debug-output.txt、失敗したビルドが残した dist/、先月放置したブランチの
node_modules。git にはこのためのコマンドが 1 つあります — git clean — そしてこれは
後ろに何も控えていない 唯一の git 操作です。その中身は一度もコミットに入っていない
ので、reflog の記録もスタッシュも取り消しもなく、取り戻すための git の呪文も存在しま
せん。
だからこれは、ターミナルで実行して後悔する操作なのです。Gitcito 版は、何かが起きる前に 一覧をすべて見せます。
⌘K → 未追跡ファイルの削除。

一覧の意味
各項目は git clean が届き得るパスで、ディスク上のサイズ付き、2 つのグループに
分かれます。
| グループ | 中身 | 既定で選択されるか |
|---|---|---|
| 未追跡 | 一度もコミットされておらず、.gitignore にも一致しない |
はい |
| 無視 | .gitignore に一致する — ビルド成果物、キャッシュ、.env |
いいえ |
この分け方こそが要点です。無視されたパスはたいてい無価値ですが、ときどき大事なものの
唯一のコピーだったりします。ローカルの .env、データベースのダンプ、ダウンロードした
フィクスチャ。.gitignore に一致するものが、あなたの代わりに選択されることはありません。
まるごと未追跡の ディレクトリは 1 行 であって、ファイルごとに 1 行ではありません
— tmp/、dist/、node_modules/。git がそれらを削除する粒度がそこであり、40,000
ファイルの一覧など誰も読まないからです。サイズはその中身の合計です。
独立したリポジトリ と印の付いたフォルダは、自前の .git を持っています。この中に
落としたクローンや、結局つなげなかった実験です。git はそれらの削除を拒みます
(-ff を求めますが、Gitcito はそのフラグを提供しません)。ゴミ箱なら引き受けます。
ゴミ箱か、削除か
ゴミ箱へ移動 は既定でオンで、git をまったく通しません。パスはシステムのゴミ箱へ 行き、そこから戻せます。入れ子のリポジトリを取り除ける唯一の経路であり、チェックの 付け間違いを生き延びられる唯一の経路でもあります。
これをオフにすると、選択したパスだけを対象にした本物の git clean -f -d -x になり、
件数と合計サイズを目の前に置いたうえで確認を求めます。そこから復旧する手立てはありま
せん。
知っておくべき制限
- 未追跡ファイルだけです。 変更された追跡中のファイルはここにありません。それは 破棄 で、インデックスまたは HEAD から復元されます。
- 一覧は先頭 400 パスで打ち切られます。 それより多いリポジトリでは、並んだものを 削除してから 再スキャン を押して残りを出してください。
- ディレクトリのサイズは、非常に大きなツリーでは概算です。 スキャンは 20,000
ファイルで止まるので、巨大な
node_modulesは実際より小さく見えることがあります。 実際より大きく出ることはありません。 - スキャンはスナップショットです。 ダイアログを開いている間にビルドがファイルを 書いた場合は、削除する前に 再スキャン を押してください。
- 何かに触れる前に、パスは git 自身の「削除可能なファイル」の一覧と突き合わせられます。 だからこのダイアログを通して、名前を指定してさえ、追跡中のものが削除されることは ありません。
関連項目: ステージングと破棄 · ファイルを無視する · 履歴からファイルを削除する