DESIGN / CODE / INFRA / AI

解説

Gitの未追跡ファイルを片付ける前に:git clean -nで候補だけ確認しよう

ビルド後にファイルが増え、どれがGitの管理外なのか分からなくなった。git cleanを使う前に、削除せず候補だけを見る練習をしよう。

Gitの未追跡ファイルを片付ける前に:git clean -nで候補だけ確認しよう
保存リストを見る →
この記事の道しるべ 6項目

ビルド後にファイルが増え、どれがGitの管理外なのか分からなくなった。git cleanを使う前に、削除せず候補だけを見る練習をしよう。

この記事は、空の一時フォルダーとGitを使う。公開サイトや普段の作業先では実行しない。掲載するcleanのコマンドはすべて-n付きで、実際の削除は行わないよ。

未追跡と、変更中の追跡ファイル

未追跡ファイルは、Gitの管理にまだ入っていないファイル。追跡中のファイルを編集した状態とは別で、通常のgit diffだけでは中身が出ない。

git cleanは未追跡のファイルなどを削除するためのコマンド。git restoreで追跡ファイルを戻す操作とは対象が違う。通常、コミットしていない未追跡ファイルの内容を、Gitが自動で復元してくれるわけではないよ。

練習先を作る

mkdir clean-preview-practice
cd clean-preview-practice
git init -q
printf 'original\n' > tracked.txt
git add tracked.txt
printf 'draft\n' > draft.txt
mkdir output
printf 'build\n' > output/result.txt
printf 'output/\n' > .gitignore
git add .gitignore
git status --short

この例はコミットを作らず、二つのファイルをステージへ置くだけ。draft.txtは未追跡、outputは無視の指定に合うフォルダーになる。すでに同じ名前のフォルダーがあるなら、別の新しい名前へ変えて始めよう。

-nで見るだけにする

git clean -n
git clean -nd
git clean -ndX
指定 この練習で見る候補
-n 通常の未追跡ファイル。draft.txtが候補
-nd 未追跡のディレクトリーも対象へ含める
-ndX 無視の指定に合う対象だけ。output/が候補

-nはdry run、つまり実際に処理せず予定を確認する指定。編集部では、この練習でdraft.txtとoutput/の候補を確認し、実行後にもすべてのファイルが残ることを確かめた。

小文字xと大文字Xを混同しない

-xは通常の無視の規則を使わず、無視されているものも対象へ含める指定。-Xは無視されているものだけを対象にする。表記が似ていても範囲は違うよ。

無視されている場所に、環境設定や手元だけの資料が置かれている場合もある。「Gitで無視しているから消してよい」とは判断しない。Gitの管理外という状態と、不要かどうかは別の話なんだ。

候補が予想と違ったら止まる

  1. pwdで今いる場所を確認する。
  2. statusで追跡・未追跡・ステージの状態を分ける。
  3. 無視の設定と、対象の名前・内容を確認する。
  4. 必要なデータの控えを、候補の外で開ける状態にする。
  5. 削除が必要な場合も、チームの手順と範囲を先に確認する。

この記事の練習は候補の確認まで。普段の作業で-nを外したり、強制オプションを付けたりする操作へ、そのまま読み替えないでね。練習を終えるときも、必要がなければフォルダーを残したままで大丈夫。

無視の仕組みはgitignoreと追跡済みファイル、差分の場所はgit diffの比較対象へ。

参照した公式資料

確認日:2026年10月25日。

参考・出典

公開と変更の記録
  • :初回公開

日時は日本時間です。記載のある変更は、確認できた編集記録に基づきます。更新日の違いだけから変更内容を推測して載せることはありません。

更新・訂正の方針 →

みんなのコメント 0

感想や、試してみたことを聞かせてね。コメント・返信は承認後に公開されます。

最初のコメントをどうぞ。