Git: busque todos los mensajes de confirmación, nombres de sucursales, contenidos de confirmación, en un solo comando

2 minutos de lectura

Quiero buscar en todas las referencias posibles (confirmaciones/ramas/etiquetas), todos los mensajes de confirmación, todos los nombres de sucursales y todos los contenidos de confirmación.

  • Un paso preliminar útil es clonar primero todas las sucursales remotas: stackoverflow.com/a/68582362/565877

    – Devin Rhode

    20 de febrero a las 23:12

  • No en un solo comando, pero con un alias para encadenar comandos, eso sí. Pero supongo que esto estaría fuera del alcance de su pregunta.

    –Román Valeri

    21 de febrero a las 3:04


  • Realmente no me importa cuál es la implementación, solo quiero buscar fácilmente todo lo almacenado en git. De hecho, espero que esto sea necesario, dada la solicitud de búsqueda. ev_er_ry_thing

    – Devin Rhode

    21 de febrero a las 15:02


Dado que nadie sugirió una cadena de comandos todavía, y en caso de que aún no la haya creado usted mismo:

git config alias.findall '!f() { echo -e "\nFound in refs:\n"; git for-each-ref refs/ | grep $1; echo -e "\nFound in commit messages:\n"; git log --all --oneline --grep="$1"; echo -e "\nFound in commit contents:\n"; git log --all --oneline -S "$1"; }; f'

Encadena estos tres comandos:

# for branches and tags we use for-each-ref and pipe the result to grep
git for-each-ref refs/ | grep $1

# for commit messages we use the grep option for log
git log --all --oneline --grep="$1"

# and for commit contents log has the -S option
git log --all --oneline -S "$1"

Así que ahora solo puedes hacer

git findall something

avatar de usuario
Fuad Zein

Puede intentar imprimir todo en la terminal y luego buscar la salida con su aplicación de terminal:

git log -5000 -p --all --decorate --oneline --graph

Por razones de rendimiento, esto está limitado a 5000 confirmaciones.

salida de muestra del comando

Hay un poco más de ruido/información que la solicitada originalmente, pero esto puede ser beneficioso; por ejemplo, ahora puede buscar hashes de confirmación, marcas de tiempo, nombres de autor. Puede buscar intuitivamente archivos eliminados, etc.

  • No has entendido la pregunta. Ni original ni útil en este contexto.

    – mate

    21 de febrero a las 2:32


  • Me acabo de dar cuenta de que esto no está completamente fuera de lugar, pero me faltan algunos puntos CRUCIALES que lo relacionan con la pregunta original. Edité esta respuesta para volver a conectarme con la solicitud original en mi pregunta.

    – Devin Rhode

    24 de febrero a las 17:05

  • Sería realmente ingenioso canalizar esta salida a algún tipo de herramienta de búsqueda, pero mis habilidades de línea de comandos aún no están ahí.

    – Devin Rhode

    24 de febrero a las 17:06

¿Ha sido útil esta solución?