What we're going to see is that a lot of these results aren't actually relevant to us. They're not from files that we're tracking, or concerned about, they're just installed dependencies.
Now, we're working in a git repository, which means that the files we actually care about are probably tracked in version control. We can use git grep to only search for the files that we actually care about, and git grep is invoked just like this.
Then, we type our query string, which in this case is bind, and git grep bind ignores all the file in our git ignore, it only looks at what's tracked by git, and you can see now instead of all that junk with lots of node modules files, we're getting actual code from within this project.
This differs from using plain grep in a lot of other ways too. For one thing, you'll notice that the results are highlighted in red. We can replicate that if we want to by adding the --color flag when we use grip.
If I were to type grep -r --color bind, and search this current directory, while we still get a bunch of junk, we can at least get the same color results, which are really nice, especially when you're looking at a lot of results.
In addition to the match highlighting, you'll also see that we're using left to view these results, which when you're looking in a large directory, also makes things much more manageable.
Git grep is often faster than normal grep, because it's leveraging the existing git index of your directory, which is really nice, and it provides these nice sort of convenience functions on top of regular behavior of grep, without requiring you to pass all these extra flags.
One note of caution, if you're not seeing results that you would expect to see when usually searching with grep, make sure to check the gitignore files in your directory to make sure you're not missing something, just because it's being ignored by git.