Gitで未追跡ファイル・管理外ファイルを削除する

Gitのバージョン管理下にないファイルを削除するには、clean コマンドを使用します。

削除方法

未追跡ファイル(新規に作成されたファイル)
# 確認
git clean -n

# 削除
git clean -f

未追跡ファイルとフォルダ(新規に作成されたファイルとフォルダ)

# 確認
git clean -dn

# 削除
git clean -df

管理外ファイル(.gitignore に一致するファイル)

# 確認
git clean -Xn

# 削除
git clean -Xf
管理外ファイルとフォルダ(.gitignore に一致するファイルとフォルダ)
# 確認
git clean -Xdn

# 削除
git clean -Xdf
管理外ファイル と 未追跡ファイル(.gitignore に一致するファイル と 新規に作成されたファイル)
# 確認
git clean -xn

# 削除
git clean -xf
管理外ファイル・フォルダ と 未追跡ファイル・フォルダ
# 確認
git clean -xdn

# 削除
git clean -xdf

オプションの説明

-n ドライラン

実際の削除は行わず、対象ファイルの表示を行います。

-f

--force ファイルの削除

未追跡ファイルを削除します。未追跡ファイルとは、コミットされていない、新規に作成されたファイルです。git add コマンドで追跡しているファイルは含みません。

後述のオプションでファイルまたはディレクトリを削除するとき、-fオプション も合わせて指定しないとエラーになります。 ただし、設定の clean.requireForce を false に設定すると -f は省略可能になります。

-x 管理外ファイルと未追跡ファイルの削除

.gitignore などで無視しているファイルと新規に作成されたファイルを削除します。 ただし、コミット や git add されているファイルは対象外です。

-X 管理外ファイルのみ削除

.gitignore などで無視しているファイルのみ対象とします。無視ファイルでも、コミット や git add されているファイルは対象外です。

-d ディレクトリ(フォルダ)の削除

他のオプションと併用するとファイルだけではなく、ディレクトリ(フォルダ)も削除します。

-e <パターン>

--exclude=<パターン>

無視ファイル と 指定したパターンに一致するファイルは削除しません。パターンの記述方法は .gitignore ファイルと同じです。

-q

エラーのみを表示します。正常に削除されたファイルは表示されません。

検証環境