Com inspeccionar l’historial d’un projecte amb el registre de Git

Com inspeccionar l’historial d’un projecte amb el registre de Git

Un dels serveis més fonamentals que proporciona Git és la història del projecte. Atès que Git fa un seguiment de tots els canvis als fitxers fets dins d'un dipòsit, pot oferir funcions de registre molt potents. Podeu consultar l'historial d'un projecte de moltes maneres diferents i podeu extreure i mostrar diverses dades mitjançant una sola ordre flexible.





El registre de git és enorme, el més gran de qualsevol ordre Git normal. El seu manual té més de 2.500 línies de longitud. Afortunadament, registre de git proporciona gran part del seu comportament més útil a partir d’unes poques opcions clau.





Registre bàsic amb el comportament predeterminat

Per defecte, registre de git mostra una llista cronològica inversa de commits. Cada commit inclou el seu hash, l'autor, la data i el missatge de commit:





L'ordre utilitza un buscapersones (per exemple, menys, més) per mostrar la sortida completa de manera que pugueu navegar fàcilment pels resultats. Podeu configurar Git per utilitzar un programa que trieu, com ara el més localitzador.

Aquí teniu algunes sortides del registre de git el dipòsit del codi font del git ell mateix:



commit 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin/next,
origin/master, origin/HEAD)
Author: Junio C Hamano
Date: Mon Jun 14 13:23:28 2021 +0900
The second batch
Signed-off-by: Junio C Hamano

El resultat comença amb el hash commit ( 670 ...) seguit d’una llista de sucursals que actualment apunten a aquest commit ( CAP -> mestre , Etc.)

com fer fotos privades a Facebook 2018

La següent línia descriu l'autor d'aquesta confirmació, indicant el seu nom i adreça de correu electrònic.





La data i l'hora completes de la confirmació segueixen a la següent línia.

Finalment, apareix el contingut complet del missatge de confirmació. Podeu controlar la majoria de tot el que ofereix git log amb les opcions de línia de comandes. Hi ha dos tipus principals d’opcions:





  • Format, que defineix com Git mostra cada commit.
  • Filtratge, que defineix els compromisos registre de git inclou.

A més de les opcions de línia d’ordres, el registre de git accepta arguments que especifiquen fitxers, confirmacions, sucursals o altres tipus de referència. Aquests apliquen un filtratge addicional.

Format del resultat del registre de Git

Un dels ajustos més senzills és el --oneline opció que produeix una sortida molt breu:

git log --oneline

Ara cada línia del registre conté només un hash de confirmació de confirmació i l’assumpte del missatge de confirmació. Aquesta és una manera excel·lent d'obtenir una visió general dels compromisos recents amb el projecte:

Malauradament, sense cap altre context, aquesta informació no sempre és tan útil. Pot ser que tingueu una vaga sensació de projecte, però que no té dates i altra informació útil sobre autors i fitxers.

Visualització d’un gràfic de sucursal

El --gràfic L'opció us permet visualitzar les relacions entre branques. És molt bàsic, però pot ajudar a desenredar una història complicada.

git log --oneline --graph

Relacionat: Com es crea una sucursal nova a Git

Bonica sortida personalitzada

Podeu aconseguir un format més complicat especificant-lo detalladament mitjançant el fitxer --bonic opció. La sintaxi va de molt simple a molt més complexa, per tant consulteu un manual per obtenir detalls complets .

com tenir una ratxa a Snapchat
git log --pretty=short

És essencialment el mateix que registre de git sense la data ni el missatge complet:

git log --pretty=oneline

És equivalent a git log --oneline .

git log --pretty=fuller

Inclou molts detalls. Fins i tot separa autor i committer que, en teoria, poden ser persones diferents:

Amb el format: variant, podeu proporcionar una cadena que contingui el contingut que vulgueu, inclosos els espais reservats que se substitueixen per diverses dades. A continuació, es mostren alguns espais reservats:

  • % H cometreu hash
  • % h hash de compromís abreujat
  • % a data de l'autor
  • % Amb data de l'autor, relativa
  • % s assigna l'assumpte del missatge
  • % b missatge del cos
  • % p hashes parentals abreujats

Podeu afegir caràcters fixos a la sortida i acolorir-la. Aquest exemple també mostra una variació del format de data:

git log --pretty=format:'%C(auto) %h [%ad] %s' --date=short

Tingueu en compte que els claudàtors envolten la data. Sigui quin sigui el format que trieu, si voleu que la sortida sigui útil en una canalització o per a altres formes de processament de text, hauríeu de plantejar-vos com es delimita cada part de la sortida.

Es mostren Diffs al registre

Un detall important a l’hora d’analitzar la història d’un dipòsit són els propis diferenciats. Al cap i a la fi, representen el que realment ha canviat al codi. Per començar, podeu obtenir un resum dels canvis al costat de cada confirmació mitjançant --shortstat :

git log --shortstat

Això afegeix una línia com:

1 file changed, 48 insertions(+), 2 deletions(-)

Al final de cada confirmació. Sovint veureu aquest tipus de resum (per exemple, a les pàgines de GitHub) i és una manera útil de jutjar ràpidament l’abast d’una comissió específica. Per obtenir informació més detallada, podeu incloure la sortida completa del pegat (diferències) mitjançant el fitxer -p bandera:

git log -p

Filtrant la sortida del registre de Git

Independentment del format que apliqueu, encara veureu el registre complet de totes les confirmacions a la branca actual. Tot i que Git els divideix en pàgines, encara pot produir-se molt. Les opcions següents us permeten personalitzar les accions que inclou el registre.

Restricció per import

Si només voleu retallar els resultats per mostrar els canvis més recents, utilitzeu el fitxer - [número] sintaxi:

git log -2

Restricció per data

Per restringir el conjunt de confirmacions a un interval de dates determinat, utilitzeu el fitxer --des de ( --després ) i --fins a ( --abans ) opcions. Tots tenen una data en format ISO 8601. Podeu utilitzar qualsevol --des de o bé --fins a pel seu compte, o ambdós junts per especificar un interval. Les opcions --després i --abans són sinònims.

git log --since='2021-01-01' --until='2021-05-01'

Restricció per fitxer

El registre de Git es pot centrar en un fitxer específic en lloc de tots els fitxers del vostre dipòsit. Això és ideal per ajudar-vos a esbrinar com ha canviat un fitxer concret amb el pas del temps. Simplement afegiu el nom del fitxer al final de l'ordre git:

git log filename

Només veureu les confirmacions que van afectar nom de l'arxiu .

Diferències entre branques

És possible que tingueu alguns requisits únics quan visualitzeu el registre d’una sucursal. Per exemple, en lloc de veure tota la història, és possible que vulgueu veure què ha canviat en aquesta branca específica. El registre de Git us pot ajudar mitjançant ref1..ref2 sintaxi. Hi ha tres enfocaments lleugerament diferents que podeu utilitzar:

  1. Veure les confirmacions que es troben a la branca principal, però no: git log --oneline origin/branch..origin/main
  2. Consulteu les confirmacions que estan a la sucursal, però no principals: git log --oneline origin/ main ..origin/ branch
  3. Veure les confirmacions que només existeixen a la branca o al main: git log --oneline origin/branch ... origin/main

Diferències entre dues etiquetes

De la mateixa manera que podeu veure l'historial entre branques mitjançant el fitxer ref1..ref2 sintaxi, també podeu veure l'historial entre etiquetes de la mateixa manera. Al cap i a la fi, tant les etiquetes com les branques són tipus de referència.

git log --abbrev-commit --pretty=format:'%h %ar %s' v2.32.0-rc3..v2.32.0

Si esteu preparant notes de llançament per a un projecte més gran, git shortlog hauria de ser el primer port d’escala. Produeix una llista d’autors amb temes compromesos al costat. Podeu passar-li un interval de referència per limitar l'historial d'una manera similar al registre de git:

git shortlog v2.32.0-rc3..v2.32.0

El ordre git show és encara més versàtil que registre de git . Pot funcionar amb etiquetes i altres tipus d'objectes git més enllà de l'historial de confirmacions. Comparteix moltes opcions amb registre de git , però només el necessitareu si necessiteu aprofundir en detalls de nivell inferior.

Reviseu el passat amb el registre de Git

El registre de Git és una ordre complicada, però podeu obtenir un ús molt gran de les seves opcions més bàsiques. Explorar l’historial d’un dipòsit és una manera excel·lent d’entendre la freqüència amb què es produeixen els canvis i la quantitat de persones que els fan. Un cop hàgiu entès bé la història d’un projecte, podreu contribuir-hi vosaltres mateixos.

Com puc trobar tots els meus comptes de correu electrònic?
Compartir Compartir Tweet Correu electrònic Uniu-vos a la tendència de codificació social i col·laboreu als dipòsits de GitHub

Voleu exercir els vostres músculs codificadors i ajudar a projectes de codi obert? A continuació s’explica com podeu contribuir a GitHub.

Llegiu a continuació
Temes relacionats
  • Programació
  • GitHub
  • Consells de codificació
Sobre l'autor Bobby Jack(58 articles publicats)

Bobby és un entusiasta de la tecnologia que va treballar com a desenvolupador de programari durant gairebé dues dècades. És un apassionat dels jocs, treballa com a editor de ressenyes a Switch Player Magazine i està immers en tots els aspectes de la publicació en línia i el desenvolupament web.

Més de Bobby Jack

Subscriu-te al nostre butlletí

Uniu-vos al nostre butlletí per obtenir consells tècnics, ressenyes, llibres electrònics gratuïts i ofertes exclusives.

Feu clic aquí per subscriure-us