Cómo usar GREP para buscar en el repositorio de Git

Cómo usar GREP para buscar en el repositorio de Git
Cualquier repositorio de Git contiene muchos archivos, carpetas, ramas, etiquetas, etc. A veces requiere buscar el contenido particular en el repositorio de git utilizando un patrón de expresión regular. El comando 'git grep' se usa para buscar en la rama de pago y los archivos locales. Pero si el usuario está buscando el contenido en una rama, pero el contenido se almacena en otra rama del repositorio, entonces él/ella no obtendrá la salida de búsqueda. En ese caso, el usuario debe ejecutar el comando 'git grep' para aplicar la búsqueda en todas las ramas de repositorio.

Parámetros de configuración del comando GREP:

Los parámetros de comando 'git grep' se utilizan para configurar este comando que han mencionado a continuación.

Nombre de parámetro Objetivo
grep.tipo de patrón Se usa para establecer el comportamiento de coincidencia predeterminado.
grep.nombre completo Está configurado en verdadero para habilitar la opción -full -name de forma predeterminada.
grep.columna Se establece en verdadero para habilitar la opción -column de forma predeterminada.
grep.número de línea Se establece en verdadero para habilitar la opción -n de forma predeterminada.
grep.extendedregexp Se establece en verdadero para habilitar la opción -extended -regexp de forma predeterminada. Pero esta opción no funcionará si el GREP. El tipo de patrón contiene otro valor en lugar del valor predeterminado.
grep. hilos Se usa para establecer el número de hilos de trabajadores de GREP.
grep.Fallbacktonoindex Si se establece en True, entonces el GIT GREP -NO -Index cuando el Git Grep se ejecuta fuera de un repositorio GIT. El valor predeterminado de este parámetro es falso.

Opciones de comando GREP:

El 'Git Grep' El comando tiene muchas opciones para buscar el contenido del repositorio de diferentes maneras. Algunas de las opciones de GREP comúnmente utilizadas han descrito a continuación.

Opción Objetivo
-yo, -indign Se usa para coincidencias insensibles de casos de los patrones y los archivos.
-I Se usa para no coincidir con el patrón en archivos binarios.
-máxima profundidad Se usa para cada uno dado en la línea de comando. El valor de profundidad de -1 indica que no hay límite. Esta opción se ignora si contiene comodines activos.
-r, -Cursivo Funciona como -max-depth = -1, y es el valor predeterminado.
-no recursivo Funciona como -max -depth = 0.
-w, -word -regexp Se usa para que coincida solo con el patrón en el límite de la palabra.
-v, -invert -coincidir Se usa para seleccionar líneas no coincidentes.
-nombre completo Se utiliza para forzar las rutas a la salida en relación con el directorio superior del proyecto.
-mi Se usa para los patrones que comienzan con, y deben usarse con el Grep.
-y, -o, -NO, (...) Estas opciones se utilizan para definir los múltiples patrones para buscar. -o es el operador predeterminado y -y -y tiene mayor precedencia que -O.
-E, -Extended -Regexp, -g, -Basic -Regexp Se usa para patrones de regexp extendidos/básicos.
-P, -perl -regexp Se usa para patrones de expresión regulares compatibles con Perl.
-F, -cuerdas fijas Se usa para los patrones de cadena fijos.
-F Se usa para leer los patrones del archivo.
-n, -number Se usa para prefijo el número de línea a las líneas de juego.
-o, -solo coincidente Se usa para imprimir solo las partes coincidentes (no vacías) de una línea de coincidencia.
-C, -Conta Se usa para mostrar el número de líneas que coinciden.
-romper Se usa para imprimir una línea vacía entre las coincidencias de los diferentes archivos.
-ayuda Se utiliza para mostrar todas las opciones disponibles con la descripción del comando GREP.

Habilitar la configuración de GREP:

Antes de ejecutar el comando 'git grep' de este tutorial, ejecute el siguiente comando para habilitar -extendido-regexp y -norte Opciones del comando GREP.

$ git config -global grep.Extendegexp verdadero
$ git config -global grep.Linenumber verdadero

Uso del comando GREP para buscar:

Un repositorio local nombrado librería se ha utilizado en este tutorial para verificar la salida del comando GREP para buscar contenido en el repositorio. El repositorio contiene dos archivos. Estos son lista de libros.php y berningla.php.

Ejecute el siguiente comando para buscar la palabra 'Tipo de libro' En los archivos del repositorio.

$ git grep 'book type' $ (git rev -list -all)

La siguiente salida muestra que la palabra 'Tipo de libro' existe en línea 1 del berningla.php archivo.

Ejecute el siguiente comando para buscar las líneas de los archivos del repositorio con los valores de confirmación SHA que contienen 'abucheo' Al inicio de los archivos. Aquí, el -i La opción se ha utilizado para la búsqueda insensible a los casos.

$ git grep -i 'boo*' $ (git rev -list --all)

La siguiente salida muestra que 'abucheo' contiene dos archivos en la línea número 1, pero la entrada para el lista de libros.php El archivo ha aparecido dos veces para dos comitaciones.

El patrón se ha buscado dentro del contenido del archivo del repositorio en los comandos anteriores. Ejecute el siguiente comando para buscar el contenido del archivo en particular.

$ git grep -f 'booktype.php.'

La siguiente salida muestra que la librería.php El archivo existe en el repositorio actual, y el archivo contiene una sola línea.

Ejecute el siguiente comando para buscar el patrón, 'reservar' dentro del contenido de los archivos del repositorio. Aquí, la opción -e se ha utilizado para la coincidencia de patrones.

$ git grep -e 'libro'

La siguiente salida muestra que ambos lista de libros.php y berningla.php Los archivos contienen la palabra 'Libro' en la línea número 1.

Ejecute el siguiente comando para buscar múltiples patrones dentro del contenido de los archivos del repositorio. Aquí, la opción -e se ha utilizado para la coincidencia de patrones regex, y la tubería (|) funciona como lógica o. Los archivos que contienen la palabra 'Libro' o 'autor' se mostrará después de ejecutar el siguiente comando.

$ Git Grep -e 'Libro*| Autor.'

La siguiente salida muestra que la palabra 'autor' existe dos veces en el autorinfo.php archivo y la palabra 'Libro' existe una vez en el lista de libros.php y berningla.php archivo.

Conclusión:

El 'Git Grep' es un comando útil para buscar el contenido específico en el repositorio de git. La búsqueda se puede hacer de diferentes maneras utilizando las diferentes opciones de este comando. Los usos de algunas opciones se han descrito en este tutorial mediante el uso de un repositorio de demostración.