Respuestas:
Tiene al menos 5 formas diferentes de ver la confirmación que actualmente ha verificado en su copia de trabajo durante una git bisectsesión ( tenga en cuenta que las opciones 1-4 también funcionarán cuando no esté haciendo una bisección ):
git show.git log -1.git status.git bisect visualize.Explicaré cada opción en detalle a continuación.
Como se explica en esta respuesta a la pregunta general de cómo determinar qué confirmación ha desprotegido actualmente (no solo durante git bisect), puede usar git showla -sopción para suprimir la salida del parche:
$ git show --oneline -s
a9874fd Merge branch 'epic-feature'
También puede simplemente hacer git log -1para averiguar en qué compromiso se encuentra actualmente.
$ git log -1 --oneline
c1abcde Add feature-003
En Git versión 1.8.3+ (¿o era una versión anterior?), Si tiene configurado su indicador Bash para mostrar la rama actual que ha extraído en su copia de trabajo, también le mostrará la confirmación actual que ha verificado fuera durante una sesión bisecta o cuando estás en un estado de "CABEZA separada". En el siguiente ejemplo, actualmente he c1abcdeverificado:
# Prompt during a bisect
user ~ (c1abcde...)|BISECTING $
# Prompt at detached HEAD state
user ~ (c1abcde...) $
También a partir de la versión 1.8.3+ de Git (y posiblemente antes, nuevamente no estoy seguro), la ejecución git statustambién le mostrará qué confirmación ha verificado durante una bisección y cuando está en estado HEAD separado:
$ git status
# HEAD detached at c1abcde <== RIGHT HERE
Finalmente, mientras está haciendo un git bisect, también puede simplemente usar git bisect visualizeo su alias incorporado git bisect viewpara iniciar gitk, de modo que pueda ver gráficamente en qué compromiso está, así como qué compromisos ha marcado como malos y buenos hasta ahora. Estoy bastante seguro de que esto existía mucho antes de la versión 1.8.3, pero no estoy seguro de en qué versión se introdujo:
git bisect visualize
git bisect view # shorter, means same thing

git statusno le muestra la identificación de confirmación a menos que esté en estado desconectado. de lo contrario dice "En rama lo que sea ". git showfunciona
Solo puedes hacer:
git rev-parse HEAD
Para explicar un poco más: git rev-parsees el comando básico de git para interpretar cualquiera de las formas exóticas en las que puede especificar el nombre de una confirmación y HEADes una referencia a su confirmación o rama actual. (En una git bisectsesión, apunta directamente a un commit ("HEAD separado") en lugar de una rama).
Alternativamente (y más fácil de recordar) sería simplemente hacer:
git show
... que por defecto muestra el commit al que HEADapunta. Para una versión más concisa, puede hacer:
$ git show --oneline -s
c0235b7 Autorotate uploaded images based on EXIF orientation
git rev-parse HEADno requiere procesamiento en comparación con todas las alternativas de basura.
$ git rev-parse HEAD 273cf91b4057366a560b9ddcee8fe58d4c21e6cb
Actualizar:
Alternativamente (si tiene etiquetas):
(Bueno para nombrar una versión, no muy bueno para pasar de nuevo a git).
$ git describe v0.1.49-localhost-ag-1-g273cf91
O (como sugirió Mark, enumerando aquí para completar):
$ git show --oneline -s c0235b7 Autorrota imágenes cargadas según la orientación EXIF
Si desea extraer una simple información, puede usarla git showcon la --format=<string>opción ... y pedirle que no le proporcione la diferencia --no-patch. Esto significa que puede obtener una salida de estilo printf de lo que desee, que a menudo puede ser un solo campo.
Por ejemplo, para obtener solo el hash acortado ( %h), podría decir:
$ git show --format="%h" --no-patch
4b703eb
Si está buscando guardar eso en una variable de entorno en bash (algo que probablemente la gente quiera hacer) puede usar la $()sintaxis :
$ GIT_COMMIT="$(git show --format="%h" --no-patch)"
$ echo $GIT_COMMIT
4b703eb
La listagit show --help completa de lo que puede hacer está en . Pero aquí hay una lista abreviada de propiedades que pueden ser útiles:
%H cometer hash%h hash de confirmación abreviado%T hash del árbol%t hash abreviado del árbol%P hashes de los padres%p hashes primarios abreviados%an nombre del autor%ae correo electrónico del autor%at fecha de autor, marca de tiempo UNIX%aI fecha de autor, estricto formato ISO 8601%cn nombre del confirmador%ce correo electrónico de confirmación%ct fecha de confirmación, marca de tiempo UNIX%cI fecha de confirmación, estricto formato ISO 8601%s tema%f línea de asunto desinfectada, adecuada para un nombre de archivo%gD selector de reflog, por ejemplo, refs / stash @ {1}%gd selector de reflog acortado, por ejemplo, stash @ {1}showno tiene nada para rama .
git log -p -S <search>hace el trabajo.