k107
k107

Reputation: 16440

git detect if there are untracked files quickly

Is there a way to quickly detect if there are any untracked files?

I can list all of the untracked files with

git ls-files --other --directory --exclude-standard

But this is slow if there are many untracked files. Is there something like git diff -q where the exit status determines whether or not any untracked files exist?

Upvotes: 10

Views: 10244

Answers (2)

jthill
jthill

Reputation: 60255

If you have what you want when you've seen the first untracked file, quit right then.

If you're on GNU/anything

git ls-files --other --directory --exclude-standard | sed q1

will set rc1 if there are any

Otherwise,

anyuntracked() {
    return `git ls-files -o --directory --exclude-standard | sed q | wc -l`
}
anyuntracked

will do the same job

Upvotes: 26

Rem.co
Rem.co

Reputation: 3821

git status will notify you of any untracked files.

Example output:

remco@Prosperpine ~/code/Sick-Beard (master) $ git status
# On branch master
# Untracked files:
#   (use "git add <file>..." to include in what will be committed)
#
#   init.osx
nothing added to commit but untracked files present (use "git add" to track)

Upvotes: 3

Related Questions