No en un repositorio Git , sino específicamente en GitHub : ¿cómo busco solo los mensajes de confirmación de un repositorio / rama específico?
328
No en un repositorio Git , sino específicamente en GitHub : ¿cómo busco solo los mensajes de confirmación de un repositorio / rama específico?
Respuestas:
A partir de 2017, es una funcionalidad incluida en GitHub .
La búsqueda de ejemplo utilizada por ellos es
repo:torvalds/linux merge:false crypto policy
fuente
Solía poder hacer esto, pero GitHub eliminó esta función en algún momento a mediados de 2013. Para lograr esto localmente, puede hacer:
(Use la
-g
bandera si desea buscar otras ramas y confirmaciones pendientes).fuente
-g
bandera para los casos de uso más comunes. No he-g
investigado demasiado en esto, pero con , la búsqueda parece retroceder solo un mes.git log -g --grep=fix
mientras que en ladevelop
rama de un repositorio que tiene ~ 8000 compromisos que abarcan dos años, solo se remonta al 2 de febrero.-g
bandera.Actualización (2017/01/05):
GitHub ha publicado una actualización que le permite ahora buscar dentro de los mensajes de confirmación desde su interfaz de usuario. Vea la publicación del blog para más información.
Tuve la misma pregunta y contacté a alguien con GitHub ayer:
Dado que cambiaron su motor de búsqueda a Elasticsearch, no es posible buscar mensajes de confirmación utilizando la interfaz de usuario de GitHub. Pero esa característica está en la lista de deseos del equipo.
Lamentablemente, no hay fecha de lanzamiento para esa función en este momento.
fuente
La respuesta corta es que no puede buscar mensajes de confirmación directamente en github.com, el sitio web. Por el momento, recomendamos la
git grep
solución local que otros en este hilo han propuesto.En un momento dado, GitHub ofreció una
git grep
búsqueda de estilo sobre los mensajes de confirmación para un único repositorio. Desafortunadamente, este enfoque expuso una denegación de servicio que podría hacer que un servidor de archivos fuera inaccesible. Por esta razón, eliminamos lagit grep
búsqueda.Las estimaciones actuales de la parte posterior del sobre ponen el número de confirmaciones en GitHub en algún lugar alrededor de la marca de 80 mil millones. Aunque los ingenieros de Google se ríen a nuestras espaldas, este es un número bastante grande de documentos para almacenar en ElasticSearch. Nos encantaría poder hacer búsquedas en este conjunto de datos, pero no es un proyecto trivial.
fuente
git diff's
(es decir, el contenido de las confirmaciones, no los metadatos de confirmación)Esto fue eliminado de GitHub. Yo suelo:
También puede filtrar por autor:
fuente
Desde la página de ayuda sobre la búsqueda de código , parece que esto aún no es posible.
Puede buscar texto en su repositorio, incluida la capacidad de elegir archivos o rutas para buscar, pero no puede especificar que desea buscar en confirmaciones.
¿Quizás les sugiera esto ?
fuente
Puede hacerlo con los repositorios que Google ha rastreado (los resultados varían de un repositorio a otro).
Buscar "cambiar licencia" en todas las sucursales de todos los repositorios rastreados
Busque la rama maestra de todos los repositorios rastreados para "cambiar licencia":
Busque la rama maestra de todos los repositorios de Twitter rastreados para "cambiar licencia"
Buscar "cambiar licencia" en todas las ramas del repositorio de twitter / some_project
fuente
Actualización de enero de 2017 (dos años después):
¡Ahora puede buscar mensajes de confirmación ! (todavía solo en la rama maestra)
Febrero de 2015: no estoy seguro de que eso sea posible, teniendo en cuenta la base actual de infraestructura de búsqueda en Elasticsearch (presentada en enero de 2013 ).
Como respuesta "a partir de fuentes confiables y / o oficiales", aquí hay una entrevista realizada con las personas de GitHub a cargo de presentar Elasticsearch en GitHub (agosto de 2013)
Todo eso significa que no todas las ramas de todo el repositorio se indexarían con ese enfoque.
Una búsqueda de mensaje de confirmación global no está disponible por ahora.
Y el propio Tim Pease confirma que los mensajes de confirmación no están indexados .
Tenga en cuenta que no es imposible obtener la propia indexación local de ElasticSearch de un clon local: consulte " Búsqueda en un repositorio git con ElasticSearch "
Pero para un repositorio específico, lo más fácil es clonarlo y hacer un:
(Más opciones en " ¿Cómo buscar un repositorio Git por mensaje de confirmación? ")
fuente
Como esto se ha eliminado de GitHub, he estado usando
gitk
Linux para hacer esto.Desde la terminal, vaya a su repositorio y escriba
gitk
.En el medio de la GUI, hay un cuadro de búsqueda. Proporciona una buena selección de filtros:
Alcance: contiene, toca caminos, agrega / elimina cadenas, cambia la coincidencia de líneas
Tipo de coincidencia: exacto / IgnCase / Regexp
Campos de búsqueda - Todos los campos / Encabezado / Comentarios / Comprador
fuente
Esto funciona bien desde Eclipse , hasta que GitHub agrega la característica:
EGit / User Guide, Buscando confirmaciones
fuente
Si tiene una versión local del repositorio, puede probar este script de shell crudo que escribí para abrir las páginas de GitHub para todas las confirmaciones que coinciden con su término de búsqueda en nuevas pestañas en su navegador predeterminado:
Simplemente reemplácelo
https://github.com/RepoOwnerUserName/RepoName/
con la URL de GitHub real de su repositorio, guarde el script en algún lugar (por ejemplogithubsearch.sh
, como , hágalo ejecutable (chmod +x githubsearch.sh
) y luego agregue el siguiente alias a su~/.bashrc
archivo:Luego, desde cualquier lugar en su repositorio Git, simplemente haga esto en la terminal:
y cualquier confirmación que coincida con su término de búsqueda (sin distinción entre mayúsculas y minúsculas) tendrá sus correspondientes páginas de GitHub abiertas en su navegador. (Tenga en cuenta que si su término de búsqueda aparece en cientos de confirmaciones, esto podría bloquear su navegador y consumir la CPU de su PC por un tiempo).
fuente
A mediados de 2019, simplemente escriba lo que desee buscar en el cuadro de búsqueda superior izquierdo y luego haga clic en " Confirmar ".
fuente