Git Clean: Remove Untracked Files and Directories
When to Use Git Clean
Your working directory accumulates untracked files — build output, generated configs, downloaded assets, temp files. git clean removes them all at once.
Safety First: Dry Run
Always preview what will be deleted:
git clean -n # Would remove: temp.log, dist/bundle.js
Removing Files
# Remove untracked files git clean -f # Remove untracked files and directories git clean -fd # Remove ignored files (those in .gitignore) git clean -fX # Remove everything (untracked + ignored) git clean -fxd
Interactive Mode
git clean -i # Interactive prompt for each file # Choose: clean, skip, or quit
Git Clean vs Git Reset
git reset --hard removes changes to tracked files but leaves untracked files alone. git clean removes untracked files. Together they create a completely clean working directory:
git reset --hard git clean -fd
Use Cases
Before a clean build: Remove dist/, node_modules/, and *.cache directories.
After merging: Clean up generated files from the merge process.
Before switching contexts: Ensure no leftover files from the previous task.
After running generators: Remove scaffolding files that were only needed for setup.
Warning
git clean permanently deletes files. Unlike git reset, there is no way to recover cleaned files — they were never tracked by Git. Always use -n (dry run) first.
A clean working directory reduces confusion and ensures reproducible builds.
Get the Offline Git Field Guide
The 97-page PDF + ePub course — $9. Read this command, offline.