Git show
¿En qué consiste git-show?
git-show
es una herramienta de línea de comandos que se utiliza para ver detalles ampliados en objetos de Git, como blobs, árboles, etiquetas y commits. git-show
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 los commits muestran un mensaje de registro del commit y el resultado de la diferencia de los cambios en este.
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 del último commit.
Opciones de git-show
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[=
La opción pretty adopta valores de formato secundarios que pueden ser: oneline, short, medium, full, fuller, email, raw,
y format:
. 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 oneline
puede resultar muy útil para mostrar una lista de commits.
--abbrev-commit
Esta opción abrevia la longitud de los ID de commit 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 commit. Ignorará --abbrev-commit
y cualquier otra opción que abrevie los ID de commit, como el --oneline format
.
--oneline
Este es un acceso rápido para hacer uso del comando expandido --pretty=oneline --abbrev-commit
.
--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 diferente codificación de caracteres, como en un terminal de lengua asiática.
>--expand-tabs=
--expand-tabs
--no-expand-tabs
Estas opciones sustituyen los caracteres de tabulación con espacios en los mensajes de registro de salida. El valor n
se puede configurar para cambiar el número de caracteres de espacio que se expanden las tabulaciones. Sin un valor n explícito, las tabulaciones se expanden 8 espacios. --no-expand-tabs
(para que las tabulaciones no se expandan) equivale a n=0
.
--notes=
--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 confirmará que el commit se firma con una firma encriptada pasándolo 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
Oneline trata de compactar la mayor cantidad de información posible en una sola línea.
- short
commit
Author:
- medium
commit
Author:
Date:
- full
commit
Author:
Commit:
- fuller
commit
Author:
AuthorDate:
Commit:
CommitDate:
- email
From
From:
Date:
Subject: [PATCH]
- raw
El formato raw ignora otras opciones de formato directo utilizadas engit-show
y devuelve el commit tal y como se almacenó en el objeto. Raw obviará--abrev
y--no-abbrev
y siempre mostrará los commits principales.
- format:
Format permite la especificación de un formato de salida personalizado. Funciona de forma similar al comandoprintf
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 llena de datos un objeto de commit. A continuación, se enumeran estos marcadores de posición:
• %H: hash del commit
• %h: hash del commit abreviado
• %T: árbol de hash
• %t: árbol de hash 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 de creación (el formato respeta la opción --date=)
• %aD: fecha de creación, estilo RFC2822
• %ar: fecha de creación, relativa
• %at: fecha de creación, marca de tiempo UNIX
• %ai: fecha de creación, 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 de confirmación
• %cD: fecha de confirmación, estilo RFC2822
• %cr: fecha de confirmación, relativa
• %ct: fecha de confirmación, marca de tiempo UNIX
• %ci: fecha de confirmación, 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 depurada, adecuada para el nombre de archivo
• %b: cuerpo
• %N: notas de commit
• %gD: selector de reflog, por ejemplo, refs/stash@{1}
• %gd: selector de reflog abreviado, por ejemplo, stash@{1}
• %gs: asunto de reflog
• %Cred: cambiar color a rojo
• %Cgreen: cambiar color a verde
• %Cblue: cambiar color a azul
• %Creset: restablecer color
• %C(...): especificación del color, como se describe en la opción de configuración color.branch.*
• %m: marca a la izquierda, derecha o en el límite
• %n: nueva línea
• %%: un % sin formato
• %x00: imprimir un byte desde un código hex
• %w([[, : cambiar 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 un commit.
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 el commit en 6ef002d74cbbc099e1063728cab14ef1fc49c783
git show commitA...commitD
Esta generará todos los commits 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 todos los commits individuales de esa serie. git-show
puede convertirse en una herramienta muy útil para crear notas de patch y supervisar los cambios en un repositorio.