Git-show

¿En qué consiste git-show?

git-show es una herramienta de línea de comandos que se utiliza para ver detalles ampliados de objetos de Git, como blobs, árboles, etiquetas y confirmaciones, y que presenta un comportamiento específico para cada tipo de objeto.

Las etiquetas muestran el mensaje de la etiqueta y otros objetos incluidos en ella; los árboles muestran los nombres y el contenido de los objetos incluidos en ellos; los blobs muestran el contenido directo de un blob; y las confirmaciones muestran un mensaje de registro de la confirmación y el resultado de la diferencia de los cambios en esta.

Se accede a todos los objetos de Git mediante referencias. De forma predeterminada, git-show actúa contra la referencia HEAD. La referencia HEAD siempre dirige al último commit de la rama actual. Por lo tanto, puedes usar git-show para mostrar los mensajes de registro y el resultado de la diferencia de la última confirmación.

Opciones de git-show

<object>…

Se puede utilizar una referencia a un objeto o a una lista de objetos para examinar estos objetos específicos. Si no se utiliza ningún objeto explícito, git-show selecciona de forma predeterminada la referencia HEAD.

--pretty[=<format>]

La opción pretty adopta valores de formato secundarios que pueden ser: oneline, short, medium, full, fuller, email, raw y format:<string>. Si se omite, el formato predeterminado es medium. Cada opción de formato constituye una plantilla diferente para la forma en la que Git da formato al resultado. La opción <code>oneline</code> puede resultar muy útil para mostrar una lista de confirmaciones.

--abbrev-commit

Esta opción abrevia la longitud de los ID de confirmación resultantes. Estos ID tienen 40 caracteres de longitud y puede ser difícil visualizarlos en las pantallas de terminales estrechas. Esta opción combinada con --pretty=oneline puede producir un resultado muy conciso de git log.

--no-abbrev-commit

Muestra siempre los 40 caracteres del ID de confirmación. Ignorará --abbrev-commit y cualquier otra opción que abrevie los ID de confirmación, como --oneline format.

--oneline

Este es un acceso rápido para hacer uso del comando expandido --pretty=oneline --abbrev-commit.

--encoding[=<encoding>]

La codificación de caracteres predeterminada en los mensajes de registro de Git es UTF-8. Esta opción de codificación puede cambiarse por otra diferente, lo que puede resultar útil si trabajas con Git en un entorno con una codificación de caracteres diferente, como un terminal de lengua asiática.

--expand-tabs=<n>--expand-tabs--no-expand-tabs

Estas opciones sustituyen los caracteres de tabulación con espacios en la salida de los mensajes de registro. El valor n se puede configurar para cambiar el número de caracteres de espacio al que se expanden las tabulaciones. Sin un valor n explícito, las tabulaciones se expanden a 8 espacios. --no-expand-tabs equivale a n=0.

--notes=<ref>--no-notes

Git tiene un sistema de notas que permite vincular los metadatos arbitrarios de "nota" a objetos. Estos datos se pueden ocultar o filtrar con git-show.

--show-signature

Esta opción validará que la confirmación se firme con una firma encriptada pasándola a un subcomando gpg.

Formatos pretty para git-show


La opción --pretty mencionada anteriormente acepta diferentes opciones secundarias para manipular el formato de salida de git-show. A continuación, se enumeran estas opciones secundarias con ejemplos de plantillas.

Oneline

<sha1> <title line>

Oneline trata de compactar la mayor cantidad de información posible en una sola línea.

short

commit <sha1>
Author: <author>
<title line>

Medio

commit <sha1>
Author: <author>
Date: <author date>
<title line>
<full commit message>

full

commit <sha1>
 Author: <author>
 Commit: <committer>
<title line>
<full commit message>

fuller

commit <sha1>
Author: <author>
AuthorDate: <author date>
Commit: <committer>
CommitDate: <committer date>
<title line>
<full commit message>

Correo electrónico

From <sha1> <date>
From: <author>
Date: <author date>
Subject: [PATCH] <title line>
<full commit message>

raw

El formato raw ignora otras opciones de formato directo utilizadas en git-show y devuelve la confirmación tal y como se almacenó en el objeto. Raw obviará --abrev y --no-abbrev, y siempre mostrará las confirmaciones principales.

Formato

Permite la especificación de un formato de salida personalizado. Funciona de forma similar al comando printf del lenguaje C. La opción --pretty=format adopta un valor secundario de una cadena de plantilla. La plantilla tiene acceso a variables de marcadores de posición que se llenarán de datos con un objeto de confirmación. Estos marcadores de posición se enumeran a continuación:

  • %H: hash de confirmación

  • %h: hash de confirmación abreviado

  • %T: hash de árbol

  • %t: hash de árbol abreviado

  • %P: hashes principales

  • %p: hashes principales abreviados

  • %an: nombre del autor

  • %aN: nombre del autor

  • %ae: correo electrónico del autor

  • %aE: correo electrónico del autor

  • %ad: fecha del autor (el formato respeta la opción --date=)

  • %aD: fecha del autor, estilo RFC2822

  • %ar: fecha del autor, relativa

  • %at: fecha del autor, marca de tiempo de UNIX

  • %ai: fecha del autor, formato ISO 8601

  • %cn: nombre del confirmador

  • %cN: nombre del confirmador

  • %ce: correo electrónico del confirmador

  • %cE: correo electrónico del confirmador

  • %cd: fecha del confirmador

  • %cD: fecha del confirmador, estilo RFC2822

  • %cr: fecha del confirmador, relativa

  • %ct: fecha del confirmador, marca de tiempo de UNIX

  • %ci: fecha del confirmador, formato ISO 8601

  • %d: nombres de referencia, como la opción --decorate de git-log(1)

  • %e: codificación

  • %s: asunto

  • %f: línea de asunto limpia, adecuada para un nombre de archivo

  • %b: cuerpo

  • %N: notas de la confirmación

  • %gD: selector de reflog; por ejemplo, refs/stash@{1}

  • %gd: selector de reflog abreviado; por ejemplo, stash@{1}

  • %gs: asunto del reflog

  • %Cred: cambia el color a rojo

  • %Cgreen: cambia el color a verde

  • %Cblue: cambia el color a azul

  • %Creset: restablece el color

  • %C(...): especificación de color, como se describe en la opción de configuración color.branch.*

  • %m: marca izquierda, derecha o límite

  • %n: nueva línea

  • %%: % sin procesar

  • %x00: imprime un byte a partir de un código hexadecimal

  • %w([[,[,]]]): cambia el ajuste de línea, como la opción -w de git-shortlog

Ejemplos de git-show

git show --pretty="" --name-only bd61ad98

Esta opción enumerará los archivos que se han tocado en una confirmación.

git show REVISION:path/to/file

Esto mostrará una versión determinada de un archivo. Sustituye REVISION por un sha de Git.

git show v2.0.0 6ef002d74cbbc099e1063728cab14ef1fc49c783

Esta mostrará la etiqueta v2.0.0 y la confirmación en 6ef002d74cbbc099e1063728cab14ef1fc49c783

git show commitA...commitD

Esta generará todas las confirmaciones de la serie, desde commitA hasta commit D.

Resumen

git-show es un comando muy versátil para examinar objetos de un repositorio de Git. Se puede utilizar para dirigirse a archivos específicos en revisiones específicas. Si examinas una serie de commits con git-show, se extraerán todas las confirmaciones individuales de esa serie. git-show puede ser en una herramienta muy útil para crear notas de patch y supervisar los cambios en un repositorio.

Recomendado para ti

Blog de Bitbucket

Ruta de aprendizaje de DevOps

Más información sobre Git

Encuentra más guías y recursos de Git en este centro.