Uno de los servicios más fundamentales proporcionados por Git es el historial del proyecto. Dado que Git realiza un seguimiento de todos los cambios en los archivos realizados dentro de un repositorio, puede ofrecer funciones de registro muy potentes. Puede consultar el historial de un proyecto de muchas formas diferentes y puede extraer y mostrar varios datos con un comando flexible.
La registro de git El comando es enorme, el más grande de cualquier comando de Git normal. Su manual tiene más de 2500 líneas. Por suerte, registro de git proporciona gran parte de su comportamiento más útil a partir de unas pocas opciones clave.
Registro básico con el comportamiento predeterminado
Por defecto, registro de git muestra una lista cronológica inversa de confirmaciones. Cada confirmación incluye su hash, autor, fecha y mensaje de confirmación:
El comando usa un buscapersonas (por ejemplo, menos, más) para mostrar el resultado completo para que pueda navegar fácilmente por los resultados. Puede configurar Git para usar un programa de su elección, como el mas buscapersonas.
Aquí hay algunos resultados de git log de el repositorio del código fuente de git sí mismo:
cometer 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin / next,
origen / maestro, origen / CABEZA)
Autor: Junio C Hamano
Fecha: lun 14 de junio 13:23:28 2021 +0900
El segundo lote
Firmado por: Junio C Hamano
El resultado comienza con el hash de confirmación (670...) seguido de una lista de ramas que actualmente apuntan a esa confirmación (CABEZA -> maestro, etc.)
La siguiente línea describe al autor de esta confirmación, dando su nombre y dirección de correo electrónico.
La fecha y hora completas de la confirmación siguen en la siguiente línea.
Finalmente, aparece el contenido completo del mensaje de confirmación. Puede controlar la mayor parte de todo lo demás que ofrece git log con opciones de línea de comandos. Hay dos tipos principales de opciones:
- Formateo, que define cómo Git muestra cada confirmación.
- Filtrado, que define qué confirma registro de git incluye.
Además de las opciones de la línea de comandos, git log acepta argumentos que especifican archivos, confirmaciones, ramas u otros tipos de referencia. Estos aplican un filtrado adicional.
Formateo de la salida del registro de Git
Uno de los ajustes más simples es el --una línea opción que produce una salida muy breve:
git log: en línea
Cada línea del registro ahora contiene solo un hash de confirmación abreviado y el asunto de el mensaje de confirmación. Esta es una excelente manera de obtener una descripción general de los compromisos recientes con el proyecto:
Desafortunadamente, sin otro contexto, esta información no siempre es tan útil. Puede que le dé una idea vaga del proyecto, pero carece de fechas y otra información útil sobre autores y archivos.
Visualización de un gráfico de rama
La --grafico La opción le permite visualizar las relaciones entre las ramas. Es muy básico, pero puede ayudar a desenredar una historia complicada.
git log --oneline --graph
Relacionados: Cómo crear una nueva rama en Git
Salida bonita personalizada
Puede lograr un formato más complicado si lo especifica en detalle con el --bonito opción. La sintaxis va de muy simple a mucho más compleja, por lo que consulte un manual para obtener detalles completos.
git log --pretty = corto
Es esencialmente lo mismo que registro de git sin la fecha o el mensaje completo:
git log --pretty = en línea
Es equivalente a git log: en línea.
git log --pretty = más completo
Incluye muchos detalles. Incluso separa al autor y al autor que, en teoría, pueden ser personas diferentes:
Con el formato: variante, puede proporcionar una cadena que contenga el contenido que desee, incluidos los marcadores de posición que se reemplazan por varios datos. A continuación, se muestran algunos ejemplos de marcadores de posición:
- % H cometer hash
- % h hash de confirmación abreviado
- %anuncio fecha del autor
- %Arkansas fecha del autor, relativo
- %s confirmar el asunto del mensaje
- %B confirmar el cuerpo del mensaje
- %pag hashes de padres abreviados
Puede agregar caracteres fijos a la salida y colorearla. Este ejemplo también muestra una variación en el formato de fecha:
git log --pretty = formato: '% C (auto)% h [% ad]% s' --date = short
Tenga en cuenta que los corchetes rodean la fecha. Independientemente del formato que elija, si desea que la salida sea útil en una canalización o para otras formas de procesamiento de texto, debe considerar cómo demarcar cada parte de la salida.
Mostrar diferencias en el registro
Un detalle importante al mirar el historial de un repositorio son las diferencias en sí mismas. ¡Representan lo que realmente ha cambiado en el código, después de todo! Para empezar, puede obtener un resumen de los cambios junto con cada confirmación usando --shortstat:
git log --shortstat
Esto agrega una línea como:
1 archivo modificado, 48 inserciones (+), 2 eliminaciones (-)
Al final de cada confirmación. A menudo verá este tipo de resumen, en todas las páginas de GitHub, por ejemplo, y es una forma útil de juzgar rápidamente el alcance de una confirmación específica. Para obtener información más detallada, puede incluir la salida de parche completa (diffs) utilizando el -pag bandera:
git log -p
Filtrar la salida del registro de Git
Independientemente del formato que aplique, seguirá viendo el registro completo de todas las confirmaciones en la rama actual. A pesar de que Git los divide en páginas, todavía puede ser una gran cantidad de resultados. Las siguientes opciones le permiten personalizar qué confirmaciones incluye el registro.
Restringir por cantidad
Si solo desea recortar los resultados para mostrar las pocas confirmaciones más recientes, use el -[número] sintaxis:
git log -2
Restringir por fecha
Para restringir el conjunto de confirmaciones a un rango de fechas dado, use el --desde (--después) y --Hasta que (--antes de) opciones. Cada uno de ellos tiene una fecha en formato ISO 8601. Puedes usar cualquiera --desde o --Hasta que por sí mismos, o ambos juntos para especificar un rango. Las opciones --después y --antes de son sinónimos.
git log --since = "2021-01-01" --until = "2021-05-01"
Restricción por archivo
El registro de Git puede centrarse en un archivo específico en lugar de en todos los archivos de su repositorio. Esto es excelente para ayudarlo a descubrir cómo ha cambiado un archivo en particular con el tiempo. Simplemente agregue el nombre del archivo al final de su comando git:
nombre de archivo de registro de git
Verá solo las confirmaciones que afectaron Nombre del archivo.
Diferencias entre ramas
Es posible que tenga algunos requisitos únicos al ver el registro de una rama. Por ejemplo, en lugar de ver el historial completo, es posible que solo desee ver qué ha cambiado en esa rama específica. Git log puede ayudar a través del ref1..ref2 sintaxis. Hay tres enfoques ligeramente diferentes que puede utilizar:
- Ver confirmaciones que están en la rama principal, pero no en la rama:
git log --oneline origin / branch..origin / main
- Ver confirmaciones que están en la rama, pero no en la principal:
git log --origen en línea /principal..origen/rama
- Ver confirmaciones que existen solo en la rama o principal:
git log: origen / rama en línea...origen / principal
Del mismo modo que puede ver el historial entre sucursales utilizando el ref1..ref2 sintaxis, también puede ver el historial entre etiquetas de la misma manera. Después de todo, tanto las etiquetas como las ramas son tipos de referencia.
git log --abbrev-commit --pretty = formato: '% h% ar% s' v2.32.0-rc3..v2.32.0
Si está preparando notas de la versión para un proyecto más grande, git shortlog debería ser su primer puerto de escala. Produce una lista de autores con temas de compromiso junto a ellos. Puede pasarle un rango de referencia para limitar el historial de una manera similar a git log:
git shortlog v2.32.0-rc3..v2.32.0
La comando git show es incluso más versátil que registro de git. Puede funcionar con etiquetas y otros tipos de objetos git más allá del historial de confirmaciones. Comparte muchas opciones con registro de git, pero solo lo necesitará realmente si necesita profundizar en detalles de nivel inferior.
Revise el pasado con Git Log
Git log es un comando complicado, pero puede aprovechar sus opciones más básicas. Examinar el historial de un repositorio es una excelente manera de comprender la frecuencia con la que ocurren los cambios y cuántas personas los realizan. Una vez que tenga una buena comprensión de la historia de un proyecto, estará en una excelente posición para contribuir usted mismo.
¿Quiere ejercitar sus músculos de codificación y ayudar en proyectos de código abierto? A continuación, le mostramos cómo contribuir a GitHub.
Leer siguiente
- Programación
- GitHub
- Consejos de codificación
Bobby es un entusiasta de la tecnología que trabajó como desarrollador de software durante la mayor parte de dos décadas. Es un apasionado de los juegos, trabaja como editor de reseñas en Switch Player Magazine y está inmerso en todos los aspectos de la publicación en línea y el desarrollo web.
Suscríbete a nuestro boletín
¡Únase a nuestro boletín de noticias para obtener consejos técnicos, reseñas, libros electrónicos gratuitos y ofertas exclusivas!
Un paso más…!
Confirme su dirección de correo electrónico en el correo electrónico que le acabamos de enviar.