Este es el comando git-show que se puede ejecutar en el proveedor de alojamiento gratuito de OnWorks utilizando una de nuestras múltiples estaciones de trabajo en línea gratuitas, como Ubuntu Online, Fedora Online, emulador en línea de Windows o emulador en línea de MAC OS.
PROGRAMA:
NOMBRE
git-show: muestra varios tipos de objetos
SINOPSIS
git show [opciones] ...
DESCRIPCIÓN
Muestra uno o más objetos (blobs, árboles, etiquetas y confirmaciones).
Para confirmaciones, muestra el mensaje de registro y la diferencia textual. También presenta el compromiso de fusión
en un formato especial producido por git árbol de diferencias --cc.
Para las etiquetas, muestra el mensaje de la etiqueta y los objetos referenciados.
Para árboles, muestra los nombres (equivalente a git ls-árbol con --name-only).
Para blobs simples, muestra el contenido simple.
El comando toma opciones aplicables a la git árbol de diferencias comando para controlar cómo el
Se muestran los cambios que introduce la confirmación.
Esta página de manual describe solo las opciones utilizadas con más frecuencia.
OPCIONES
...
Los nombres de los objetos a mostrar. Para obtener una lista más completa de formas de deletrear nombres de objetos,
consulte la sección "ESPECIFICACIÓN DE REVISIONES" en gitrevisiones(7).
--pretty [= ], --format =
Imprime el contenido de los registros de confirmación en un formato dado, donde puede ser
uno de una línea, short, mediano , ser completados, batán, email, crudo, formato: y
tformat:. Cuando el no es ninguno de los anteriores, y tiene % marcador de posición en eso, es
actúa como si --pretty = tformat: fueron dados.
Consulte la sección "BONITOS FORMATOS" para obtener detalles adicionales para cada formato. Cuando
= parte se omite, por defecto es mediano .
Nota: puede especificar el formato bonito predeterminado en la configuración del repositorio (consulte
git-config(1)).
--compromiso abreviado
En lugar de mostrar el nombre completo del objeto de confirmación hexadecimal de 40 bytes, muestre solo un
prefijo parcial. El número de dígitos no predeterminado se puede especificar con "--abbrev = "
(que también modifica la salida diff, si se muestra).
Esto debería hacer que "--pretty = oneline" sea mucho más legible para las personas que usan
Terminales de 80 columnas.
--no-abrev-commit
Muestra el nombre completo del objeto de confirmación hexadecimal de 40 bytes. Esto niega --abbrev-commit y
aquellas opciones que lo impliquen como "--oneline". También anula la
log.abrevCommit variable.
--una línea
Esta es una abreviatura de "--pretty = oneline --abbrev-commit" usados juntos.
--encoding =
Los objetos de confirmación registran la codificación utilizada para el mensaje de registro en su codificación
encabezamiento; esta opción se puede usar para decirle al comando que vuelva a codificar el mensaje de registro de confirmación
en la codificación preferida por el usuario. Para los comandos que no son de plomería, este valor predeterminado es
UTF-8. Tenga en cuenta que si un objeto afirma estar codificado en X y lo estamos generando en X,
generará el objeto textualmente; esto significa que las secuencias inválidas en el original
La confirmación se puede copiar a la salida.
--notas [= ]
Muestre las notas (vea notas-git(1)) que anotan el compromiso, al mostrar el compromiso
mensaje de registro. Este es el valor predeterminado para los comandos git log, git show y git whatchanged
cuando no hay ninguna opción --pretty, --format o --oneline en la línea de comando.
De forma predeterminada, las notas que se muestran son de las referencias de notas enumeradas en el core.notesRef y
notas.displayRef variables (o anulaciones de entorno correspondientes). Ver git-config(1)
para obtener más información.
Con un opcional argumento, muestra esta referencia de notas en lugar de las notas predeterminadas
ref (s). La referencia especifica el nombre de referencia completo cuando comienza con refs / notes /; cuando
comienza con notes /, refs / y de lo contrario refs / notes / tiene el prefijo para formar un nombre completo de
La referencia.
Se pueden combinar varias opciones de notas para controlar qué notas se muestran.
Ejemplos: "--notes = foo" mostrará solo notas de "refs / notes / foo"; "--notes = foo
--notes "mostrará ambas notas de" refs / notes / foo "y de las notas predeterminadas ref (s).
--no notas
No muestre notas. Esto niega la opción --notes anterior, restableciendo la lista de
notas referencias de las que se muestran las notas. Las opciones se analizan en el orden indicado en el
línea de comando, por ejemplo, "--notes --notes = foo --no-notes --notes = bar" solo se mostrará
notas de "refs / notes / bar".
--show-notes [= ], - [no-] notas-estándar
Estas opciones están obsoletas. En su lugar, utilice las opciones anteriores --notes / - sin notas.
- show-firma
Verifique la validez de un objeto de confirmación firmado pasando la firma a gpg --verify
y mostrar la salida.
BONITO FORMATOS
Si la confirmación es una fusión, y si el formato bonito no es una línea, email or crudo, un
se inserta una línea adicional antes de la Escrito por: línea. Esta línea comienza con "Merge:" y
los sha1s de las confirmaciones ancestrales se imprimen, separados por espacios. Tenga en cuenta que el listado
Las confirmaciones pueden no ser necesariamente la lista de de reservas el padre se compromete si tiene limitaciones
su visión del historial: por ejemplo, si solo está interesado en los cambios relacionados con un
cierto directorio o archivo.
Hay varios formatos integrados y puede definir formatos adicionales configurando un
lindo. config a otro nombre de formato, o un formato: cuerda, como
descrito a continuación (ver git-config(1)). Aquí están los detalles de los formatos integrados:
· una línea
Está diseñado para ser lo más compacto posible.
· short
cometer
Autor:
· mediano
cometer
Autor:
Fecha:
· ser completados
cometer
Autor:
Cometer:
· batán
cometer
Autor:
Autor Fecha:
Cometer:
Fecha de cometer:
De
De:
Fecha:
Asunto: [PATCH]
· crudo
El crudo El formato muestra la confirmación completa exactamente como se almacena en el objeto de confirmación.
En particular, los SHA-1 se muestran en su totalidad, independientemente de si --abbrev o
--no-abrev se utilizan, y padres. La información muestra que el padre verdadero se compromete, sin
teniendo en cuenta los injertos o la simplificación de la historia. Tenga en cuenta que este formato afecta
la forma en que se muestran las confirmaciones, pero no la forma en que se muestra la diferencia, por ejemplo, con git log
--crudo. Para obtener los nombres completos de los objetos en un formato de diferencias sin formato, use --no-abbrev.
· formato:
El formato: El formato le permite especificar qué información desea mostrar.
Funciona un poco como el formato printf, con la notable excepción de que obtienes un
nueva línea con %n en lugar de \n.
P.ej, formato: "El autor of %h iba %un, % ar% nThe título iba >>% s <<% n " mostraría
algo como esto:
El autor de fe6e0ee fue Junio C Hamano, hace 23 horas
El título era >> t4119: test autocomputing -p para entrada diferencial tradicional. <
Los marcadores de posición son:
· %H: cometer hash
· %h: hash de confirmación abreviado
· %T: hash de árbol
· %t: hash de árbol abreviado
· %P: hash de los padres
· %p: hashes de padres abreviados
· %un: nombre del autor
· %un: nombre del autor (respetando .mailmap, ver git-shortlog(1) o culpable(1))
· % ae: correo electrónico del autor
· % aE: correo electrónico del autor (respetando .mailmap, consulte git-shortlog(1) o culpable(1))
· %anuncio: fecha del autor (el formato respeta la opción --date =)
· %anuncio: fecha del autor, estilo RFC2822
· %Arkansas: fecha del autor, relativo
· %a: fecha del autor, marca de tiempo UNIX
· %ai: fecha del autor, formato similar a ISO 8601
· %ai: fecha del autor, formato estricto ISO 8601
· % cn: nombre del autor
· % cN: nombre del confirmador (respetando .mailmap, consulte git-shortlog(1) o culpable(1))
· % ce: correo electrónico del autor
· % cE: correo electrónico del confirmador (respetando .mailmap, consulte git-shortlog(1) o culpable(1))
· %CD: fecha del confirmador (el formato respeta la opción --date =)
· %CD: fecha de confirmación, estilo RFC2822
· % cr: fecha del autor, relativa
· %Connecticut: fecha de confirmación, marca de tiempo UNIX
· % ci: fecha de confirmación, formato similar a ISO 8601
· % cI: fecha de confirmación, formato estricto ISO 8601
· %d: nombres de referencia, como la opción --decorate de registro de git(1)
· %D: nombres de referencia sin el ajuste "(", ")".
· %e: codificación
· %s: tema
· %f: línea de asunto desinfectada, adecuada para un nombre de archivo
· %b: cuerpo
· %B: cuerpo crudo (sujeto y cuerpo sin envolver)
· %N: confirmar notas
· % GG: mensaje de verificación sin procesar de GPG para una confirmación firmada
· %¿GRAMO?: muestre "G" para una buena firma, "B" para una mala firma, "U" para una buena,
firma no confiable y "N" para no firma
· % GS: muestra el nombre del firmante de un compromiso firmado
· %G K: muestra la clave utilizada para firmar una confirmación firmada
· % gD: selector de reflog, p. ej., refs / stash @ {1}
· % gd: selector de reflog acortado, p. ej., alijo @ {1}
· % gn: reflog nombre de identidad
· % gN: reflog nombre de identidad (respetando .mailmap, ver git-shortlog(1) o git-
culpa(1))
· % ge: volver a registrar el correo electrónico de identidad
· % gE: volver a registrar el correo electrónico de identidad (respetando .mailmap, consulte git-shortlog(1) o git-
culpa(1))
· % gs: reflog sujeto
· % Cred: cambia el color a rojo
· % Cverde: cambia el color a verde
· % Cazul: cambia el color a azul
· % Cresta: restablecer color
· %C(...): especificación de color, como se describe en color.branch. * opción de configuración; agregando
automático, al principio emitirá color solo cuando los colores estén habilitados para la salida del registro
(por color.diff, color.ui o --color, y respetando la configuración automática del
ex si vamos a una terminal). automático solo (es decir,% C (automático)) se encenderá
coloración automática en los siguientes marcadores de posición hasta que se cambie de color nuevamente.
· %m: izquierda, derecha o marca de límite
· %n: nueva línea
· %%: un crudo %
· % x00: imprime un byte de un código hexadecimal
· % w ([ [, [, ]]]): cambiar el ajuste de línea, como la opción -w de git-
bitácora(1).
· % <( [, trunc | ltrunc | mtrunc]): haga que el siguiente marcador de posición tome al menos N columnas,
espacios de relleno a la derecha si es necesario. Opcionalmente truncar al principio
(ltrunc), el medio (mtrunc) o el final (trunc) si la salida es más larga que N
columnas. Tenga en cuenta que truncar solo funciona correctamente con N> = 2.
· % <| ( ): haga que el siguiente marcador de posición tome al menos hasta las columnas N, relleno
espacios a la derecha si es necesario
· %> ( ), %> | ( ): Similar a % <( ), % <| ( ) respectivamente, pero espacios de relleno
a la izquierda
· % >> ( ), % >> | ( ): Similar a %> ( ), %> | ( ) respectivamente, excepto que si el
el siguiente marcador de posición ocupa más espacios de los indicados y hay espacios a su izquierda,
usa esos espacios
· %> <( ), %> <| ( ): Similar a % <( ), % <| ( ) respectivamente, pero rellenando ambos
lados (es decir, el texto está centrado)
Nota
Algunos marcadores de posición pueden depender de otras opciones dadas al motor de recorrido de revisión.
Por ejemplo, las opciones de% g * reflog insertarán una cadena vacía a menos que estemos
atravesando entradas de reflog (por ejemplo, por git log -g). Los marcadores de posición% d y% D utilizarán
el formato de decoración "corto" si --decorate aún no se proporcionó en el comando
la línea.
Si agrega un + (signo más) después % de un marcador de posición, se inserta un salto de línea inmediatamente
antes de la expansión si y solo si el marcador de posición se expande a una cadena no vacía.
Si agrega un - (signo menos) después % de un marcador de posición, los avances de línea que preceden inmediatamente
las expansiones se eliminan si y solo si el marcador de posición se expande a una cadena vacía.
Si agrega un `` (espacio) después % de un marcador de posición, se inserta un espacio inmediatamente antes
la expansión si y solo si el marcador de posición se expande a una cadena no vacía.
· formato:
El formato: el formato funciona exactamente como formato:, excepto que proporciona "terminador"
semántica en lugar de semántica de "separador". En otras palabras, cada compromiso tiene la
carácter de terminación del mensaje (generalmente una nueva línea) agregado, en lugar de un separador
colocado entre las entradas. Esto significa que la entrada final de un formato de una sola línea
terminar correctamente con una nueva línea, tal como lo hace el formato "en línea". Para
ejemplo:
$ git log -2 --pretty = formato:% h 4da45bef \
| perl -pe '$ _. = "- NO NEWLINE \ n" a menos que / \ n /'
4da45be
7134973 - SIN NEWLINE
$ git log -2 --pretty = tformat:% h 4da45bef \
| perl -pe '$ _. = "- NO NEWLINE \ n" a menos que / \ n /'
4da45be
7134973
Además, cualquier cadena no reconocida que tenga un% se interpreta como si tuviera
tformat: delante de él. Por ejemplo, estos dos son equivalentes:
$ git log -2 --pretty = tformat:% h 4da45bef
$ git log -2 --pretty =% h 4da45bef
COMÚN DIFF OPCIONES
-p, -u, --parche
Generar parche (consulte la sección sobre generación de parches).
-s, --no-parche
Suprime la salida de diferencias. Útil para comandos como git show que muestran el parche por
predeterminado, o para cancelar el efecto de --patch.
-U , --unificado =
Generar diferencias con líneas de contexto en lugar de las tres habituales. Implica -p.
--crudo
Para cada confirmación, muestre un resumen de los cambios utilizando el formato de diferencia sin formato. Ver el "RAW
FORMATO DE SALIDA "sección de diferencia git(1). Esto es diferente a mostrar el registro en sí.
en formato raw, que puede lograr con --format = raw.
--parche-con-crudo
Sinónimo de -p --raw.
--mínimo
Dedique más tiempo para asegurarse de que se produzca la diferencia más pequeña posible.
--paciencia
Genere una diferencia utilizando el algoritmo "diferencia de paciencia".
--histograma
Genere una diferencia usando el algoritmo "histogram diff".
--diff-algorítm = {paciencia | mínimo | histograma | myers}
Elija un algoritmo de diferencias. Las variantes son las siguientes:
por defecto, myers
El algoritmo básico de diferencias codiciosas. Actualmente, este es el predeterminado.
mínimo
Dedique más tiempo para asegurarse de que se produzca la diferencia más pequeña posible.
paciencia
Utilice el algoritmo "paciencia diff" al generar parches.
histograma
Este algoritmo amplía el algoritmo de paciencia para "admitir errores comunes de baja ocurrencia
elementos".
Por ejemplo, si configuró la variable diff.algorithm en un valor no predeterminado y
desea usar el predeterminado, entonces debe usar la opción --diff-algorítm = default.
--stat [= [, [, ]]]
Genere un diffstat. De forma predeterminada, se utilizará tanto espacio como sea necesario para la
la parte del nombre de archivo y el resto para la parte del gráfico. El ancho máximo predeterminado es el terminal
ancho, u 80 columnas si no está conectado a un terminal, y puede ser anulado por .
El ancho de la parte del nombre del archivo se puede limitar dando otro ancho
después de una coma. El ancho de la parte del gráfico se puede limitar usando
--stat-graph-width = (afecta a todos los comandos que generan un gráfico estadístico) o por
configuración diff.statGraphWidth = (no afecta a git format-patch). Dando un
tercer parámetro , puede limitar la salida a la primera líneas seguidas
por ... si hay más.
Estos parámetros también se pueden configurar individualmente con --stat-width = ,
--stat-name-width = y --stat-count = .
--numstat
Similar a --stat, pero muestra el número de líneas agregadas y eliminadas en notación decimal y
nombre de ruta sin abreviatura, para hacerlo más amigable con la máquina. Para archivos binarios,
salidas dos - en lugar de decir 0 0.
--shortstat
Muestra solo la última línea del formato --stat que contiene el número total de modificaciones
archivos, así como el número de líneas agregadas y eliminadas.
--dirstat [= ]
Genere la distribución de la cantidad relativa de cambios para cada subdirectorio. los
El comportamiento de --dirstat se puede personalizar pasándole una lista separada por comas de
parámetros. Los valores predeterminados están controlados por la variable de configuración diff.dirstat
(consulta: git-config(1)). Están disponibles los siguientes parámetros:
cambios
Calcule los números de dirstat contando las líneas que se han eliminado del
origen o agregado al destino. Esto ignora la cantidad de código puro
movimientos dentro de un archivo. En otras palabras, reorganizar líneas en un archivo no es
contados tanto como otros cambios. Este es el comportamiento predeterminado cuando no hay parámetro
es dado.
líneas
Calcule los números de dirstat haciendo el análisis de diferencias regular basado en líneas, y
sumando los recuentos de líneas eliminadas / agregadas. (Para archivos binarios, cuente fragmentos de 64 bytes
en cambio, dado que los archivos binarios no tienen un concepto natural de líneas). Esta es una mas
costoso: comportamiento indirecto que el comportamiento de cambios, pero cuenta
líneas reorganizadas dentro de un archivo tanto como otros cambios. La salida resultante es
coherente con lo que obtiene de las otras - * opciones estadísticas.
archivos
Calcule los números de dirstat contando el número de archivos modificados. Cada uno cambió
El archivo cuenta por igual en el análisis de dirstat. Este es el computacionalmente más barato
- comportamiento de dirstat, ya que no tiene que mirar el contenido del archivo en absoluto.
acumulativo
Cuente también los cambios en un directorio secundario para el directorio principal. Tenga en cuenta que
cuando se usa acumulativo, la suma de los porcentajes reportados puede exceder el 100%. los
El comportamiento predeterminado (no acumulativo) se puede especificar con el parámetro no acumulativo.
parámetro.
Un parámetro entero especifica un porcentaje de corte (3% por defecto). Directorios
que contribuyen con menos de este porcentaje de los cambios no se muestran en la salida.
Ejemplo: lo siguiente contará los archivos modificados, mientras ignora los directorios con menos
más del 10% de la cantidad total de archivos modificados y la acumulación de recuentos de directorios secundarios
en los directorios principales: --dirstat = files, 10, acumulativo.
--resumen
Genere un resumen condensado de información extendida del encabezado, como creaciones, cambios de nombre
y cambios de modo.
--parche-con-estadística
Sinónimo de -p --stat.
-z
Separe las confirmaciones con NUL en lugar de con nuevas líneas.
Además, cuando se ha proporcionado --raw o --numstat, no munge nombres de ruta y use NUL como
terminadores de campo de salida.
Sin esta opción, cada salida de nombre de ruta tendrá TAB, LF, comillas dobles y
caracteres de barra invertida reemplazados por \ t, \ n, \ "y \\, respectivamente, y el nombre de la ruta
se incluirá entre comillas dobles si se produjo alguno de esos reemplazos.
--sólo nombre
Muestra solo los nombres de los archivos modificados.
--nombre-estado
Muestra solo los nombres y el estado de los archivos modificados. Vea la descripción del --diff-filter
opción sobre el significado de las letras de estado.
--submódulo [= ]
Especifique cómo se muestran las diferencias en los submódulos. Cuando --submodule o --submodule = log
se da, el log se utiliza el formato. Este formato enumera las confirmaciones en el rango como git-
submódulo(1) resumen lo hace. Omitir la opción --submodule o especificar
--submodule = short, usa el short formato. Este formato solo muestra los nombres de los
confirma al principio y al final del rango. Se puede modificar a través del submódulo diff.
variable de configuración.
--color [= ]
Mostrar diferencia de colores. --color (es decir, sin =) es lo mismo que --color = always.
puede ser siempre, nunca o automático.
--sin color
Desactive la diferencia de color. Es lo mismo que --color = never.
--word-diff [= ]
Muestre una diferencia de palabra, usando el para delimitar palabras cambiadas. Por defecto, las palabras son
delimitado por espacios en blanco; consulte --word-diff-regex a continuación. los predeterminado a llanura,
y debe ser uno de:
Color
Resalte las palabras cambiadas usando solo colores. Implica --color.
llanura
Muestra palabras como [-removed-] y {+ added +}. No hace ningún intento de escapar de la
delimitadores si aparecen en la entrada, por lo que la salida puede ser ambigua.
porcelana
Utilice un formato especial basado en líneas destinado al consumo de scripts.
Las tiradas agregadas / eliminadas / sin cambios se imprimen en el formato de diferencia unificada habitual,
comenzando con un carácter + / - / `` al principio de la línea y extendiéndose hasta
el fin de la línea. Las nuevas líneas en la entrada están representadas por una tilde ~ en una línea
propia.
ninguna
Desactive la diferencia de palabras de nuevo.
Tenga en cuenta que a pesar del nombre del primer modo, el color se usa para resaltar el cambio
partes en todos los modos si está habilitado.
--word-diff-regex =
Usar para decidir qué es una palabra, en lugar de considerar corridas de espacios no en blanco para
sea una palabra. También implica --word-diff a menos que ya esté habilitado.
Cada partido no superpuesto del se considera una palabra. Cualquier cosa entre
estas coincidencias se consideran espacios en blanco y se ignoran (!) a los efectos de encontrar
diferencias. Es posible que desee agregar | [^ [: espacio:]] a su expresión regular para hacer
asegúrese de que coincida con todos los caracteres que no sean espacios en blanco. Una coincidencia que contiene una nueva línea es
truncado silenciosamente (!) en la nueva línea.
Por ejemplo, --word-diff-regex =. tratará cada carácter como una palabra y,
correspondientemente, muestre las diferencias carácter por carácter.
La expresión regular también se puede configurar mediante un controlador de diferencias o una opción de configuración, consulte
atributos de git(1) o git-config(1). Darlo anula explícitamente cualquier controlador de diferencia o
ajuste de configuración. Los controladores Diff anulan los ajustes de configuración.
--color-words [= ]
Equivalente a --word-diff = color plus (si se especificó una expresión regular)
--word-diff-regex = .
--no-renombra
Desactive la detección de cambio de nombre, incluso cuando el archivo de configuración indique lo predeterminado
así.
--cheque
Advertir si los cambios introducen errores de espacios en blanco. Lo que se consideran errores de espacios en blanco es
controlado por la configuración de core.whitespace. De forma predeterminada, espacios en blanco finales
(incluidas las líneas que constan únicamente de espacios en blanco) y un carácter de espacio
seguido inmediatamente por un carácter de tabulación dentro de la sangría inicial de la línea son
considerados errores de espacio en blanco. Sale con un estado distinto de cero si se encuentran problemas. No
compatible con --exit-code.
--ws-error-highlight =
Resalte los errores de espacio en blanco en las líneas especificadas por en el color especificado por
color.diff.whitespace. es una lista separada por comas de contexto antiguo, nuevo. Cuando
esta opción no se ofrece, solo se resaltan los errores de espacio en blanco en las líneas nuevas. P.ej
--ws-error-highlight = new, old resalta los errores de espacio en blanco tanto eliminados como agregados
líneas. todos se pueden utilizar como una abreviatura para el contexto antiguo, nuevo.
- índice completo
En lugar del primer puñado de caracteres, muestre el blob completo anterior y posterior a la imagen
nombres de objeto en la línea "índice" al generar la salida en formato de parche.
--binario
Además de --full-index, genera una diferencia binaria que se puede aplicar con git-apply.
--abbrev [= ]
En lugar de mostrar el nombre completo del objeto hexadecimal de 40 bytes en la salida con formato diff-raw
y las líneas de encabezado del árbol de diferencias, muestran solo un prefijo parcial. Esto es independiente de la
- opción de índice completo anterior, que controla el formato de salida del parche de diferencias. No por defecto
el número de dígitos se puede especificar con --abbrev = .
-B[ ] [/ ], --break-reescribe [= [ ] [/ ]]
Divida los cambios de reescritura completa en pares de eliminar y crear. Esto sirve dos
propósitos:
Afecta la forma en que un cambio que equivale a una reescritura total de un archivo, no como una serie.
de eliminación e inserción mezcladas con muy pocas líneas que coinciden
textualmente como el contexto, pero como una sola eliminación de todo lo antiguo seguido de un
inserción única de todo lo nuevo, y el número m controla este aspecto de la -B
opción (predeterminado al 60%). -B / 70% especifica que menos del 30% del original debe
permanecen en el resultado para que Git lo considere una reescritura total (es decir, de lo contrario, el
El parche resultante será una serie de eliminación e inserción mezcladas con el contexto.
líneas).
Cuando se utiliza con -M, un archivo totalmente reescrito también se considera la fuente de un
renombrar (generalmente -M solo considera un archivo que desapareció como la fuente de un cambio de nombre),
y el número n controla este aspecto de la opción -B (por defecto es 50%). -B20%
especifica que un cambio con adición y supresión en comparación con el 20% o más de la
El tamaño del archivo es elegible para ser elegido como una posible fuente de cambio de nombre a
otro archivo.
-METRO[ ], --find-renames [= ]
Si genera diferencias, detecte e informe los cambios de nombre para cada confirmación. Para los siguientes archivos
a través de los cambios de nombre mientras recorre el historial, consulte --follow. Si se especifica n, es un
umbral en el índice de similitud (es decir, cantidad de adiciones / eliminaciones en comparación con el
tamaño del archivo). Por ejemplo, -M90% significa que Git debe considerar un par de eliminar / agregar como un
cambiar el nombre si más del 90% del archivo no ha cambiado. Sin un signo de%, el número es
debe leerse como una fracción, con un punto decimal antes. Es decir, -M5 se convierte en 0.5 y es
por lo tanto, lo mismo que -M50%. De manera similar, -M05 es lo mismo que -M5%. Para limitar la detección a
cambios de nombre exactos, utilice -M100%. El índice de similitud predeterminado es 50%.
-C[ ], --find-copies [= ]
Detecta copias y renombra. Consulte también --find-copies-hard. Si se especifica n,
tiene el mismo significado que para -M .
- encontrar copias más difíciles
Por motivos de rendimiento, de forma predeterminada, la opción -C busca copias solo si el archivo original
de la copia se modificó en el mismo conjunto de cambios. Esta bandera hace que el comando inspeccione
archivos no modificados como candidatos para la fuente de copia. Esta es una muy cara
operación para proyectos grandes, así que utilícelo con precaución. Dar más de una opción -C
tiene el mismo efecto.
-D, - eliminar-irreversible
Omita la preimagen para las eliminaciones, es decir, imprima solo el encabezado pero no la diferencia entre los
preimage y / dev / null. El parche resultante no debe aplicarse con parche o
aplicar git; esto es únicamente para personas que solo quieren concentrarse en revisar el
texto después del cambio. Además, la salida obviamente carece de información suficiente para
aplique dicho parche al revés, incluso manualmente, de ahí el nombre de la opción.
Cuando se usa junto con -B, omite también la preimagen en la parte de eliminación de un
eliminar / crear par.
-l
Las opciones -M y -C requieren un tiempo de procesamiento O (n ^ 2) donde n es el número de
posibles objetivos de cambio de nombre / copia. Esta opción evita que se ejecute la detección de cambio de nombre / copia
si el número de destinos para renombrar / copiar excede el número especificado.
--diff-filter = [(A | C | D | M | R | T | U | X | B) ... [*]]
Seleccione solo archivos agregados (A), copiados (C), eliminados (D), modificados (M), renombrados
(R), tienen su tipo (es decir, archivo regular, enlace simbólico, submódulo, ...) cambiado (T), son
No fusionados (U), son Desconocidos (X) o su emparejamiento se ha roto (B). Cualquier combinación
de los caracteres de filtro (incluido ninguno) se pueden utilizar. Cuando se agrega * (Todo o nada)
a la combinación, se seleccionan todas las rutas si hay algún archivo que coincida con otros
criterios en la comparación; si no hay ningún archivo que coincida con otros criterios, nada
se selecciona.
-S
Busque diferencias que cambien el número de apariciones de la cadena especificada
(es decir, adición / eliminación) en un archivo. Destinado al uso del guionista.
Es útil cuando busca un bloque exacto de código (como una estructura) y desea
para conocer la historia de ese bloque desde que nació: use la función
iterativamente para alimentar el bloque interesante en la preimagen de nuevo en -S, y continuar
hasta que obtenga la primera versión del bloque.
-GRAMO
Busque diferencias cuyo texto de parche contenga líneas agregadas / eliminadas que coincidan .
Para ilustrar la diferencia entre -S --pickaxe-regex y -G , considerar
una confirmación con la siguiente diferencia en el mismo archivo:
+ return! regexec (regexp, two-> ptr, 1, ®match, 0);
...
- hit =! regexec (regexp, mf2.ptr, 1, ®match, 0);
Mientras que git log -G "regexec \ (regexp" mostrará esta confirmación, git log -S "regexec \ (regexp"
--pickaxe-regex no lo hará (porque el número de apariciones de esa cadena no
cambio).
Consulte las pico entrada en gitdiffcore(7) para obtener más información.
--pico-todo
Cuando -S o -G encuentra un cambio, muestra todos los cambios en ese conjunto de cambios, no solo el
archivos que contienen el cambio en .
--pico-regex
Trate el dado a -S como una expresión regular POSIX extendida para que coincida.
-O
Imprima el parche en el orden especificado en el , que tiene un globo de caparazón
patrón por línea. Esto anula la variable de configuración diff.orderFile (consulte git-
config(1)). Para cancelar diff.orderFile, use -O / dev / null.
-R
Intercambia dos entradas; es decir, mostrar las diferencias entre el índice o el archivo en disco y el árbol
contenido.
--relativo [= ]
Cuando se ejecuta desde un subdirectorio del proyecto, se le puede indicar que excluya los cambios externos
el directorio y mostrar los nombres de ruta relacionados con él con esta opción. Cuando no estas en
un subdirectorio (por ejemplo, en un repositorio simple), puede nombrar qué subdirectorio hacer
la salida relativa a dando un como argumento.
-un texto
Trate todos los archivos como texto.
--ignorar-espacio-en-eol
Ignore los cambios en los espacios en blanco en EOL.
-b, --ignorar-cambio-de-espacio
Ignore los cambios en la cantidad de espacios en blanco. Esto ignora los espacios en blanco al final de la línea y
considera que todas las demás secuencias de uno o más espacios en blanco son equivalentes.
-w, --ignorar-todo-espacio
Ignore los espacios en blanco al comparar líneas. Esto ignora las diferencias incluso si una línea tiene
espacios en blanco donde la otra línea no tiene ninguno.
--ignorar-líneas-en-blanco
Ignore los cambios cuyas líneas estén todas en blanco.
--inter-hunk-context =
Muestre el contexto entre bloques de diferencias, hasta el número especificado de líneas, por lo tanto
fusionando macizos que están cerca unos de otros.
-W, --función-contexto
Muestre las funciones circundantes completas de los cambios.
--ext-diferencia
Permita que se ejecute un asistente de diferencias externo. Si configura un controlador de diferencia externo con
atributos de git(5), debe utilizar esta opción con registro de git(1) y amigos.
--no-ext-diff
No permitir controladores de diferenciales externos.
--textconv, --no-textconv
Permitir (o no permitir) que se ejecuten filtros de conversión de texto externos al comparar archivos binarios
archivos. Ver atributos de git(5) para obtener más detalles. Dado que los filtros de conversión de texto suelen ser
conversión unidireccional, la diferencia resultante es adecuada para el consumo humano, pero no puede
se aplicado. Por esta razón, los filtros de conversión de texto están habilitados de forma predeterminada solo para git-
diff(1) y registro de git(1), pero no para parche de formato git(1) o comandos de plomería diff.
--ignore-submodules [= ]
Ignore los cambios en los submódulos en la generación de diferencias. puede ser "ninguno",
"sin seguimiento", "sucio" o "todos", que es el valor predeterminado. El uso de "ninguno" considerará el
submódulo modificado cuando contiene archivos modificados o sin seguimiento o su HEAD
difiere de la confirmación registrada en el superproyecto y se puede utilizar para anular cualquier
ajustes de la pasar por alto en opción git-config(1) o módulos de git(5). Cuando "sin seguimiento" es
Los submódulos usados no se consideran sucios cuando solo contienen contenido sin seguimiento (pero
todavía se escanean en busca de contenido modificado). El uso de "sucio" ignora todos los cambios en el
árbol de trabajo de los submódulos, solo los cambios en las confirmaciones almacenadas en el superproyecto son
mostrado (este era el comportamiento hasta 1.7.0). El uso de "todos" oculta todos los cambios en
submódulos.
--src-prefix =
Muestra el prefijo de fuente proporcionado en lugar de "a /".
--dst-prefix =
Muestra el prefijo de destino dado en lugar de "b /".
--no-prefijo
No muestre ningún prefijo de origen o destino.
Para obtener una explicación más detallada sobre estas opciones comunes, consulte también gitdiffcore(7).
GENERANDO PARCHES HE TRABAJADO -P
Cuando "git-diff-index", "git-diff-tree" o "git-diff-files" se ejecutan con un -p opción, "git
diff "sin el --crudo , o "git log" con la opción "-p", no producen la
salida descrita anteriormente; en su lugar, producen un archivo de parche. Puedes personalizar la creación
de dichos parches a través de las variables de entorno GIT_EXTERNAL_DIFF y GIT_DIFF_OPTS.
Lo que produce la opción -p es ligeramente diferente del formato de diferencia tradicional:
1. Está precedido por un encabezado "git diff" que se ve así:
diff --git a / archivo1 b / archivo2
Los nombres de archivo a / yb / son los mismos a menos que se trate de un cambio de nombre / copia. Especialmente, incluso
para una creación o eliminación, / dev / null es no utilizado en lugar de a / o b /
nombres de archivo.
Cuando se trata de cambiar el nombre / copiar, file1 y file2 muestran el nombre del archivo fuente del
renombrar / copiar y el nombre del archivo que produce el cambio de nombre / copia, respectivamente.
2. Va seguido de una o más líneas de encabezado extendidas:
modo antiguo
nuevo modo
modo de archivo eliminado
nuevo modo de archivo
Copiado de
copiar a
cambiar el nombre de
cambiar el nombre a
índice de similitud
índice de disimilitud
índice ..
Los modos de archivo se imprimen como números octales de 6 dígitos, incluido el tipo de archivo y el archivo
bits de permiso.
Los nombres de ruta en los encabezados extendidos no incluyen los prefijos a / y b /.
El índice de similitud es el porcentaje de líneas sin cambios y el índice de disimilitud
es el porcentaje de líneas cambiadas. Es un número entero redondeado hacia abajo, seguido de un
signo de porcentaje. Por tanto, el valor del índice de similitud del 100% se reserva para dos archivos iguales,
mientras que una disimilitud del 100% significa que ninguna línea del archivo anterior llegó al nuevo
.
La línea de índice incluye la suma de comprobación SHA-1 antes y después del cambio. los es
incluido si el modo de archivo no cambia; de lo contrario, las líneas separadas indican el antiguo
y el nuevo modo.
3. Los caracteres TAB, LF, comillas dobles y barra invertida en los nombres de ruta se representan como \ t, \ n,
\ "y \\, respectivamente. Si hay necesidad de tal sustitución, el conjunto
el nombre de la ruta se pone entre comillas dobles.
4. Todos los archivos file1 en la salida se refieren a archivos antes de la confirmación, y todos los archivos file2
los archivos se refieren a archivos después de la confirmación. Es incorrecto aplicar cada cambio a cada
archivo secuencialmente. Por ejemplo, este parche intercambiará ayb:
diff --git a / ab / b
cambiar el nombre de un
cambiar el nombre a b
diff --git a / bb / a
cambiar el nombre de b
cambiar el nombre a un
CONJUNTO DIFF FORMATO
Cualquier comando que genere diferencias puede tomar la opción -c o --cc para producir un combinado diff when
mostrando una fusión. Este es el formato predeterminado cuando se muestran fusiones con diferencia git(1) o git-
show(1). Tenga en cuenta también que puede dar la opción -m a cualquiera de estos comandos para forzar
generación de diferencias con padres individuales de una combinación.
A combinado diff el formato se ve así:
diff --combinado describe.c
índice fabadb8, cc95eb0..4866510
--- a / describe.c
+++ b / describe.c
@@@ -98,20 -98,12 +98,20 @@@
return (a_date> b_date)? -1: (a_date == b_date)? 0: 1;
}
- descripción vacía estática (char * arg)
-static void describe (estructura de confirmación * cmit, int last_one)
++ descripción vacía estática (char * arg, int last_one)
{
+ unsigned char sha1 [20];
+ estructura de compromiso * cmit;
struct commit_list * lista;
static int inicializado = 0;
estructura nombre_compromiso * n;
+ si (get_sha1 (arg, sha1) <0)
+ uso (describe_usage);
+ cmit = lookup_commit_reference (sha1);
+ si (! cmit)
+ uso (describe_usage);
+
if (! initialized) {
inicializado = 1;
for_each_ref (get_name);
1. Está precedido por un encabezado "git diff", que se ve así (cuando -c opción es
usó):
diff: archivo combinado
o así (cuando --cc se utiliza la opción):
archivo diff --cc
2. Va seguido de una o más líneas de encabezado extendidas (este ejemplo muestra una combinación con
dos padres):
índice , ..
modo , ..
nuevo modo de archivo
modo de archivo eliminado ,
El modo , .. La línea aparece sólo si al menos uno de los es
diferente al resto. Encabezados extendidos con información sobre los contenidos detectados
movimiento (cambios de nombre y detección de copia) están diseñados para funcionar con diff de dos
y no se utilizan con el formato de diferencias combinado.
3. Va seguido de un encabezado de dos líneas de archivo / a archivo.
--- un archivo
+++ b / archivo
Similar al encabezado de dos líneas para el tradicional unificado formato diff, / dev / null se utiliza para
señal de archivos creados o eliminados.
4. El formato del encabezado de fragmentos se modifica para evitar que las personas lo introduzcan accidentalmente
parche -p1. El formato de diferencias combinado se creó para revisar los cambios de confirmación de fusión, y
no estaba destinado a aplicar. El cambio es similar al cambio en el extendido índice
encabezamiento:
@@@ @@@
Hay (número de padres + 1) caracteres @ en el encabezado del fragmento para la diferencia combinada
formato.
A diferencia del tradicional unificado formato diff, que muestra dos archivos A y B con un solo
columna que tiene - (menos - aparece en A pero eliminado en B), + (más - falta en A pero
agregado a B), o prefijo "" (espacio - sin cambios), este formato compara dos o más archivos
archivo1, archivo2, ... con un archivo X, y muestra cómo X se diferencia de cada archivoN. Una columna
para cada uno de los archivos N se antepone a la línea de salida para notar cómo la línea de X es diferente de
él.
Un carácter en la columna N significa que la línea aparece en el archivo N pero no aparece
en el resultado. Un carácter + en la columna N significa que la línea aparece en el resultado,
y fileN no tiene esa línea (en otras palabras, la línea fue agregada, desde el punto de
vista de ese padre).
En el resultado del ejemplo anterior, la firma de la función se cambió de ambos archivos (por lo tanto, dos
- eliminaciones de file1 y file2, más ++ para significar que una línea que se agregó no
aparecen en archivo1 o archivo2). También otras ocho líneas son iguales desde el archivo1 pero no
no aparece en el archivo2 (por lo tanto, tiene el prefijo +).
Cuando se muestra en git diff-tree -c, compara los padres de una confirmación de fusión con la fusión
resultado (es decir, file1..fileN son los padres). Cuando se muestra en git diff-files -c, compara
los dos padres de fusión no resueltos con el archivo del árbol de trabajo (es decir, el archivo1 es la etapa 2, también conocida como
"nuestra versión", file2 es la etapa 3 también conocida como "su versión").
EJEMPLOS
espectáculo git v1.0.0
Muestra la etiqueta v1.0.0, junto con el objeto al que apunta la etiqueta.
git show v1.0.0 ^ {árbol}
Muestra el árbol al que apunta la etiqueta v1.0.0.
git show -s --format =% s v1.0.0 ^ {confirmar}
Muestra el asunto de la confirmación al que apunta la etiqueta v1.0.0.
git show next ~ 10: Documentation / README
Muestra el contenido del archivo Documentation / README tal como estaban vigentes en el décimo
última confirmación de la rama siguiente.
git show master: Makefile master: t / Makefile
Concatena el contenido de dichos Makefiles en la cabecera del maestro de rama.
DISCUSIÓN
Git es hasta cierto punto independiente de la codificación de caracteres.
· El contenido de los objetos blob son secuencias de bytes no interpretadas. No hay
codificación de la traducción a nivel básico.
· Los nombres de las rutas están codificados en la forma C de normalización UTF-8. Esto se aplica a los objetos de árbol,
el archivo de índice, los nombres de las referencias, así como los nombres de las rutas en los argumentos de la línea de comandos,
variables de entorno y archivos de configuración (.git / config (ver git-config(1)), ignorar(5)
atributos de git(5) y módulos de git(5)).
Tenga en cuenta que Git en el nivel central trata los nombres de ruta simplemente como secuencias de no NUL
bytes, no hay conversiones de codificación de nombre de ruta (excepto en Mac y Windows).
Por lo tanto, el uso de nombres de ruta que no sean ASCII funcionará principalmente incluso en plataformas y archivos
sistemas que utilizan codificaciones ASCII extendidas heredadas. Sin embargo, los repositorios creados en
dichos sistemas no funcionarán correctamente en sistemas basados en UTF-8 (por ejemplo, Linux, Mac, Windows)
y viceversa. Además, muchas herramientas basadas en Git simplemente asumen que los nombres de ruta son
UTF-8 y no mostrará correctamente otras codificaciones.
· Los mensajes de registro de confirmación generalmente se codifican en UTF-8, pero otras codificaciones ASCII extendidas
también son compatibles. Esto incluye ISO-8859-x, CP125x y muchos otros, pero no
Codificaciones multibyte UTF-16/32, EBCDIC y CJK (GBK, Shift-JIS, Big5, EUC-x, CP9xx
etc.).
Aunque recomendamos que los mensajes de registro de confirmación estén codificados en UTF-8, tanto el núcleo como el
Git Porcelain está diseñado para no forzar UTF-8 en proyectos. Si todos los participantes de un
proyecto particular les resulta más conveniente utilizar codificaciones heredadas, Git no prohíbe
eso. Sin embargo, hay algunas cosas a tener en cuenta.
1. git hacer y git árbol de compromiso emite una advertencia si el mensaje de registro de confirmación que se le da
no parece una cadena UTF-8 válida, a menos que diga explícitamente que su proyecto usa una
codificación heredada. La forma de decir esto es tener i18n.commitencoding en .git / config
archivo, así:
[i18n]
codificación de compromiso = ISO-8859-1
Los objetos de confirmación creados con la configuración anterior registran el valor de i18n.commitencoding
en su encabezado de codificación. Esto es para ayudar a otras personas que los vean más tarde. Falta de
este encabezado implica que el mensaje de registro de confirmación está codificado en UTF-8.
2. git log, git show, git culpa y los amigos miran el encabezado de codificación de una confirmación
e intente volver a codificar el mensaje de registro en UTF-8 a menos que se especifique lo contrario. usted
puede especificar la codificación de salida deseada con i18n.logoutputencoding en .git / config
archivo, así:
[i18n]
codificación de salida de sesión = ISO-8859-1
Si no tiene esta variable de configuración, el valor de i18n.commitencoding es
utilizado en su lugar.
Tenga en cuenta que elegimos deliberadamente no volver a codificar el mensaje de registro de confirmación cuando se realiza una confirmación.
hecho para forzar UTF-8 en el nivel de objeto de confirmación, porque la recodificación a UTF-8 no es
necesariamente una operación reversible.
GIT
Parte de los git(1) suite
Use git-show en línea usando los servicios de onworks.net