Gitで不要なファイルを一掃!untracked filesの削除方法
プロジェクトのフォルダを開いたとき、「このファイルって何だっけ?」と思うことはありませんか?
こんにちは、とまだです。
実は開発を進めていると、知らないうちに不要なファイルが山のように増えていることがあります。 まるで部屋の片隅に溜まっていく不要な書類のようなものです。
今回は、Gitで管理されていない「untracked files」を安全に削除する方法について解説します。
untracked filesとは?
Gitにおけるファイル管理は、図書館の本の管理に似ています。
図書館では登録された本だけが管理対象です。 同じように、Gitも「追跡する」と決めたファイルだけを管理します。
この追跡されていないファイルが「untracked files」です。
どんなファイルがuntrackedになりやすい?
開発中によく見かけるuntracked filesには以下のようなものがあります。
まず、エディタが自動生成する設定ファイルです。 次に、プログラムを実行したときの一時ファイルもあります。 さらに、テスト用に作った実験的なファイルも含まれます。
これらは必要なときもありますが、多くは削除しても問題ありません。
なぜuntracked filesを削除する必要があるのか
散らかった部屋では必要なものが見つけにくいですよね。 プロジェクトのフォルダも同じです。
不要なファイルが増えると、本当に必要なファイルを探すのが大変になります。 また、チーム開発では他のメンバーが混乱する原因にもなります。
実務での困った場面
新しくプロジェクトに参加したメンバーがいるとします。 そのメンバーがリポジトリをクローンしたとき、大量の不要ファイルがあったらどうでしょう。
何が必要で何が不要か判断できません。 結果として、環境構築に時間がかかってしまいます。
untracked filesを削除する前の注意点
部屋の掃除でも、大切なものを捨ててしまわないよう注意しますよね。 ファイルの削除も同じです。
削除前に確認すべきこと
まず、本当に不要なファイルかを確認しましょう。 特に、まだコミットしていない重要な変更がないか注意が必要です。
なぜなら、untracked filesは履歴に残らないからです。 一度削除すると、復元はほぼ不可能になります。
git cleanコマンドで削除する
それでは、実際の削除方法を見ていきましょう。
Gitにはgit clean
という便利なコマンドがあります。
これは、まさに「お掃除コマンド」といえるでしょう。
基本的な使い方
最もよく使うのは以下のコマンドです。
git clean -f -d
-f
は「force(強制)」の意味で、実際に削除を実行します。
-d
は「directory(ディレクトリ)」も含めて削除する指定です。
削除前に確認したい場合
いきなり削除するのは不安ですよね。 そんなときは、まず削除対象を確認しましょう。
git clean -n -d
-n
オプションを使うと、削除予定のファイルだけを表示します。
実際には削除されないので安心です。
.gitignoreファイルの活用
そもそも不要なファイルが増えないようにする方法もあります。
それが.gitignore
ファイルの活用です。
.gitignoreの役割
.gitignore
は、Gitに「このファイルは無視してね」と伝える設定ファイルです。
まるで「立入禁止」の看板のような役割を果たします。
たとえば、以下のような設定をよく見かけます。
# エディタの設定ファイル
.vscode/
.idea/
# 一時ファイル
*.tmp
*.log
# ビルド成果物
build/
dist/
このように設定しておけば、最初から管理対象外になります。
より強力な削除オプション
場合によっては、.gitignore
で無視されているファイルも削除したいことがあります。
-xオプションの使用
git clean -f -d -x
-x
オプションを追加すると、.gitignore
の設定を無視して削除します。
ただし、これは諸刃の剣です。
必要な設定ファイルまで消してしまう可能性があります。 使用する際は十分注意しましょう。
実践的な削除手順
ここで、安全に削除するための手順をまとめます。
1. まず現状を確認
git status
untracked filesがどれくらいあるか確認します。
2. 削除対象をチェック
git clean -n -d
削除予定のファイルを表示させます。 ここで本当に削除して良いか判断します。
3. 必要なファイルは退避
重要そうなファイルがあれば、別の場所にコピーしておきます。 念のためのバックアップです。
4. 削除を実行
git clean -f -d
問題なければ、実際に削除します。
チーム開発での運用ルール
一人で開発していれば自由に削除できます。 しかし、チーム開発では配慮が必要です。
ルールを決めておく
チームで以下のようなルールを共有しておくと良いでしょう。
まず、.gitignore
に何を書くかを統一します。
次に、git clean
を使うタイミングも決めておきます。
最後に、削除前の確認手順も共有します。
こうすることで、メンバー全員が安心して作業できます。
git stashという選択肢
削除ではなく、一時的に退避する方法もあります。
それがgit stash
コマンドです。
untrackedファイルも退避できる
git stash -u
-u
オプションを付けると、untracked filesも一緒に退避できます。
後で必要になったら取り出せるので便利です。
ただし、大量のファイルがある場合は管理が煩雑になります。 状況に応じて使い分けましょう。
よくあるトラブルと対処法
実際に使っていると、いくつかのトラブルに遭遇することがあります。
削除できないファイルがある
権限の問題で削除できないことがあります。 その場合は、管理者権限で実行するか、手動で削除します。
間違えて削除してしまった
残念ながら、完全な復元は困難です。 だからこそ、事前の確認が重要なのです。
もしバックアップがあれば、そこから復元しましょう。
まとめ
untracked filesの削除は、プロジェクトを整理する大切な作業です。
基本はgit clean -f -d
コマンドです。
ただし、削除前には必ず-n
オプションで確認しましょう。
また、.gitignore
を適切に設定すれば、そもそも不要なファイルが増えません。
チーム開発では、ルールを決めて運用することも大切です。
プロジェクトをきれいに保つことで、開発効率も向上します。 ぜひ実践してみてください。
著者について

とまだ
フルスタックエンジニア
Learning Next の創設者。Ruby on Rails と React を中心に、プログラミング教育に情熱を注いでいます。初心者が楽しく学べる環境作りを目指しています。
著者の詳細を見る →