ver tipos tag sirve remove qué para nos modificados log existen etiquetas cuando crear creamos archivos git search github branch

tipos - Usando git, ¿cómo podría buscar una cadena en todas las ramas?



¿para qué nos sirve el sha-1 cuando creamos tags? (5)

Usando git, ¿cómo puedo buscar dentro de todos los archivos en todas las ramas locales para una cadena dada?

Específico de Github: ¿es posible realizar la búsqueda anterior en todas las ramas de github? (Hay varias ramas remotas en mi repositorio remoto de Github que idealmente no tendría que bajar para esta búsqueda).


En muchos casos, git rev-list --all pueden devolver una gran cantidad de confirmaciones que tardan una eternidad en analizar. Si en lugar de buscar en cada confirmación en cada una de las ramas de su historial de repositorio solo desea buscar todas las sugerencias de ramas, puede reemplazarlas con git show-ref --heads . Entonces, en total:

git grep "string" `git show-ref --heads`

o:

git show-ref --heads | xargs git grep "string"

Consejo: Puede escribir la salida en archivo para ver en el editor.

nano ~/history.txt git show-ref --heads | xargs git grep "search string here" >> ~/history.txt


Hay algunos problemas con las soluciones enumeradas aquí (incluso aceptadas).

  1. No necesita enumerar todos los hashes ya que obtendrá duplicados, también lleva más tiempo.

Se basa en esto donde se puede buscar una cadena "test -f /" en múltiples ramas master y dev como

git grep "test -f /" master dev

que es lo mismo que

printf "master/ndev" | xargs git grep "test -f /"

Así que aquí va.

Esto busca los valores hash para la punta de todas las ramas locales y busca solo en esas confirmaciones.

git branch -v --no-abbrev | awk -F'' *'' ''{print $3}'' | xargs git grep "string/regexp"

Si necesita buscar en sucursales remotas también, agregue -a :

git branch -a -v --no-abbrev | awk -F'' *'' ''{print $3}'' | xargs git grep "string/regexp"

Actualizar:

# search in local branches git branch | cut -c3- | xargs git grep "string" # search in remote branches git branch -r | cut -c3- | xargs git grep "string" # search in all (local and remote) branches git branch -a | cut -c3- | xargs git grep "string" # search in branches, and tags git show-ref | grep -v "refs/stash" | cut -d'' '' -f2 | xargs git grep "string"


Puedes hacer esto en un repositorio de Git:

git grep "string/regexp" $(git rev-list --all)

La búsqueda avanzada de Github tiene la capacidad de búsqueda de código:

La búsqueda de Código buscará en todo el código alojado públicamente en GitHub. También puede filtrar por:

  • el idioma: language:
  • el nombre del repositorio (incluido el nombre de usuario): repo:
  • la ruta del archivo: path:

Puedes intentar esto

git log -Sxxxx #search all commits git log -Sxxxx --branches[=<pattern>] #search branches