Technology and General Blog

Any git repository consists of numerous information, folders, branches, tags, and so on. Occasionally it demands browsing the unique articles in the git repository utilizing a common expression sample. `git grep` command is made use of to search in the checkout department and area data files. But if the consumer is browsing the information in one branch, but the content is saved in a further department of the repository, then he/she will not get the exploring output. In that scenario, the consumer has to run the `git grep` command to utilize the research in all repository branches.

Configuration parameters of grep command:

The `git grep` command parameters are employed to configure this command have stated beneath.

Parameter Title Goal
grep.patternType It is utilised to set the default matching actions.
grep.fullName It is established to genuine for enabling the –full-name choice by default.
grep.column It is established to true for enabling the –column alternative by default.
grep.lineNumber It is established to correct for enabling -n alternative by default.
grep.extendedRegexp It is established to correct for enabling the –extended-regexp possibility by default. But this possibility will not function if the grep. Pattern sort contains yet another price in position of the default worth.
grep. threads It is utilised to established the range of grep employee threads.
grep.fallbackToNoIndex If it is set to genuine, then the git grep –no-index when the git grep executed outside the house of a git repository. The default worth of this parameter is phony.

Selections of grep command:

The `git grep` command has many options to research the repository information in unique means. Some of the generally used grep possibilities have described underneath.

Alternative Purpose
-i, –ignore-situation It is employed for scenario insensitive matches of the designs and the information.
-I It is employed to really do not match the pattern in binary files.
–max-depth It is applied for each individual specified on the command line. The depth price of -1 implies no limit. This selection is overlooked if has lively wildcards.
-r, –recursive It will work like –max-depth=-1, and it is the default benefit.
–no-recursive It works like –max-depth=.
-w, –word-regexp It is utilised to match the sample only at the term boundary.
-v, –invert-match It is used to choose non-matching lines.
–full-identify It is employed to drive the paths to the output relative to the job top rated directory.
-e It is utilised for the styles starting up with – and really should be employed with the grep.
–and, –or, –not, ( … ) These options are used to define the various patterns for searching. –or is the default operator and –and has higher precedence than –or.
-E, –extended-regexp, -G, –basic-regexp It is used for POSIX prolonged/simple regexp patterns.
-P, –perl-regexp It is employed for Perl-suitable typical expression patterns.
-F, –fixed-strings It is utilised for the preset string styles.
-f It is employed to study the patterns from the file.
-n, –line-amount It is utilized to prefix the line number to matching strains.
-o, –only-matching It is utilised to print only the matched (non-empty) pieces of a matching line.
-c, –count It is utilised to display the number of strains that match.
–break It is utilised to print an empty line among the matches from the unique data files.
–help It is applied to display all offered alternatives with the description of the grep command.

Allow grep configuration:

Before jogging the `git grep` command of this tutorial, operate the following command to permit –extended-regexp and -n selections of the grep command.

$ git config –world wide grep.extendRegexp genuine
$ git config –global grep.lineNumber real

Use of grep command for browsing:

A nearby repository named book-retail outlet has been used in this tutorial to check the output of the grep command for exploring content material in the repository. The repository has two data files. These are booklist.php and booktype.php.

Operate the next command to search the word ‘Book Type’ in the repository documents.

$ git grep ‘Book type’ $(git rev-listing –all)

The subsequent output shows that the word ‘Book type’ exists in line 1 of the booktype.php file.

Operate the following command to research the traces of the repository documents with the commit SHA values that have ‘boo’ at the beginning of the data files. Right here, the -i selection has employed for circumstance-insensitive look for.

$ git grep -i ‘boo*’ $(git rev-record –all)

The next output demonstrates that ‘boo’ is made up of two files at line quantity 1, but the entry for the booklist.php file has appeared two periods for two commits.

The sample has been searched inside of the content of the repository file in the former instructions. Operate the pursuing command to look for the information of the particular file.

$ git grep -f ‘booktype.php.’

The following output displays that the booktype.php file exists in the latest repository, and the file has a solitary line.

Run the next command to look for the pattern, ‘Book’ within the material of the repository files. Here, the -e possibility has used for sample matching.

The adhering to output demonstrates that both booklist.php and booktype.php information include the phrase ‘Book’ at line number 1.

Operate the adhering to command to search a number of patterns inside the information of the repository files. In this article, the -E alternative has used for regex sample matching, and the pipe (|) is performing as reasonable OR. The documents that comprise the word ‘Book’ or ‘author’ will be revealed following executing the adhering to command.

$ git grep -E ‘Book*|author.’

The subsequent output demonstrates that the term ‘author’ exists two situations in the authorinfo.php file, and the phrase ‘Book’ exists one particular time in the booklist.php and booktype.php file.


The `git grep` is a helpful command for searching the certain articles in the git repository. The browsing can be carried out in distinctive methods by applying the different selections of this command. The employs of some possibilities have been explained in this tutorial by utilizing a demo repository.

Leave a Reply

Your email address will not be published. Required fields are marked *