DEV Community

Cover image for Taming untracked files in a large git repository
Matthew Watkins
Matthew Watkins

Posted on • Originally published at blog-anotherdevblog.c9users.io

2 1

Taming untracked files in a large git repository

Have you ever tried to add a NuGet package to a Visual Studio project but accidentally added it to the whole solution? And now you have 100 untracked .config files showing up in your changed files list? Or have you ever stopped git in the middle of a big rebase and end up with a lot of new files on your machine and you need to rewind and get to a pristine state?

Well, that's why we have

git clean -fd

. But if you work in a very large codebase like I do at work, that command takes forever to run. I'm talking "go to your one-hour meeting and hope it finishes by the time you get back" forever.

Luckily, if the number of files that show as untracked is manageable, there's a faster way to get rid of those pesky untracked files than running

git clean

:

git ls-files --others --exclude-standard | xargs -n 1 rm -fr
Enter fullscreen mode Exit fullscreen mode

I'm not one to post a command or code snippet without some explanation, but hopefully, this is obvious enough.

git ls-files --others --exclude-standard

is the magical incantation that prints the list of untracked file paths to stdout (just as they are printed in the last section you see when you run

git status

). We then pipe that list into the xargs utility, which iterates over them 1 at a time and passes each file path into the delete (


) command, leaving you with no files left in the working directory that git doesn't know about.

I maintain a bash script that I use to auto-create and synchronize my git aliases across my computers [here](https://gist.github.com/watkinsmatthewp/79093d4bf0d55c2e7269f534f1b6a689). I've added these commands as

 ```git list-untracked-files```

 and

 ```git delete-untracked-files```

 since I use them so often.

Know of any better ways to clean untracked files from a large codebase in Git? Leave a comment below!
Enter fullscreen mode Exit fullscreen mode

Hostinger image

Get n8n VPS hosting 3x cheaper than a cloud solution

Get fast, easy, secure n8n VPS hosting from $4.99/mo at Hostinger. Automate any workflow using a pre-installed n8n application and no-code customization.

Start now

Top comments (2)

Collapse
 
slash3b profile image
Ilya Tribusean

thanks!

Collapse
 
patrick profile image
Patrick Ziegler • Edited

Nice solution! Also, why is git clean so slow?

The formatting seems to be a little messed up

Qodo Takeover

Introducing Qodo Gen 1.0: Transform Your Workflow with Agentic AI

Rather than just generating snippets, our agents understand your entire project context, can make decisions, use tools, and carry out tasks autonomously.

Read full post