Dragan Simic <dsimic@xxxxxxxxxxx> writes: > ---no-index:: > - Search files in the current directory that is not managed by Git. > - > --untracked:: > In addition to searching in the tracked files in the working > tree, search also in untracked files. > > +--no-index:: > + Search files in the current directory that is not managed by Git. > + This option cannot be used together with `--cached` or `--untracked`. > + See also `grep.fallbackToNoIndex` in CONFIGURATION below. Hmph, this is not the fault of this patch, but the description is iffy. You can run "git grep --no-index" inside a directory that is managed by Git, and it behaves as if you gave --untracked, if I am not mistaken. What "--no-index" does is to pretend that there is no system called Git and work as if it were a strange implementation of "grep -r". The reader should be taught to understand the mode as such, because that understanding will apply whether the current directory happens to be part of a working tree managed by git, or not under control by git repository anywhere. There is no tracked or untracked or managed or anything like that, as we are pretending that there is no git, so it falls naturally that --cached or --untracked would not work. And from that point of view, swapping the order of "--no-index" and "--untracked" in this patch does make sense. All other options that specify which haystack to find the needle in are all about git; "--no-index" truly is an oddball that pretends that we live in a world without git, and as an oddball, we should move the description out from where it does not belong. It might also make sense to rethink where `--recurse-submodules` sits in the list of options while at it, as it also is an option that affects which haystack the search for the needle is carried out. > --no-exclude-standard:: > Also search in ignored files by not honoring the `.gitignore` > mechanism. Only useful with `--untracked`.