Cum să inspectați istoricul unui proiect cu Git Log

Cum să inspectați istoricul unui proiect cu Git Log

Unul dintre cele mai fundamentale servicii furnizate de Git este istoricul proiectului. Deoarece Git ține evidența tuturor modificărilor aduse fișierelor efectuate într-un depozit, acesta poate oferi caracteristici de înregistrare foarte puternice. Puteți interoga istoricul unui proiect în mai multe moduri diferite și puteți extrage și afișa diverse date folosind o singură comandă flexibilă.





The git log comanda este imensă, cea mai mare dintre toate comenzile Git obișnuite. Manualul său are peste 2.500 de linii. Din fericire, git log oferă o mare parte din comportamentul său cel mai util din doar câteva opțiuni cheie.





Înregistrare de bază cu comportamentul implicit

În mod implicit, git log afișează o listă cronologică inversă a comiterilor. Fiecare confirmare include hash-ul, autorul, data și mesajul de confirmare:





Comanda folosește un pager (de exemplu, mai puțin, mai mult) pentru a afișa rezultatul complet, astfel încât să puteți naviga cu ușurință în rezultate. Puteți configura Git pentru a utiliza un program la alegere, cum ar fi cel mai pager.

Iată câteva rezultate din jurnalul git depozitul codului sursă git în sine:



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

Rezultatul începe cu hash-ul commit ( 670 ...) urmată de o listă de sucursale care indică în prezent acel commit ( CAP -> maestru , etc.)

Telecomanda tv roku tcl nu funcționează

Următorul rând îl descrie pe autorul acestui commit, indicând numele și adresa de e-mail.





Data și ora completă a angajamentului urmează pe următoarea linie.

În cele din urmă, apare conținutul complet al mesajului de confirmare. Puteți controla majoritatea tuturor celorlalte oferte de git log cu opțiuni din linia de comandă. Există două tipuri principale de opțiuni:





  • Formatare, care definește modul în care Git afișează fiecare commit.
  • Filtrare, care definește ce comitere git log include.

În plus față de opțiunile din linia de comandă, jurnalul git acceptă argumente care specifică fișiere, confirmări, ramuri sau alte tipuri de referință. Acestea aplică o filtrare suplimentară.

Formatarea Git Log Output

Una dintre cele mai simple ajustări este --o linie opțiune care produce o ieșire foarte scurtă:

git log --oneline

Fiecare linie din jurnal conține acum doar un hash de validare abreviat și subiectul mesajului de validare. Acesta este un mod excelent de a obține o imagine de ansamblu asupra angajamentelor recente la proiect:

Din păcate, fără alt context, aceste informații nu sunt întotdeauna atât de utile. S-ar putea să vă ofere un sentiment vag pentru proiect, dar îi lipsesc datele și alte informații utile despre autori și fișiere.

Vizualizarea unui grafic de ramură

The --grafic opțiunea vă permite să vizualizați relațiile dintre ramuri. Este foarte de bază, dar poate ajuta la dezlegarea unei istorii complicate.

git log --oneline --graph

Legate de: Cum să creați o filială nouă în Git

Ieșire destul de personalizată

Puteți obține o formatare mai complicată, specificând-o în detaliu utilizând --frumos opțiune. Sintaxa merge de la foarte simplă la mult mai complexă, deci consultați un manual pentru detalii complete .

poți amesteca și potrivi mărci de berbeci
git log --pretty=short

Este în esență același cu git log fără data sau mesajul complet:

git log --pretty=oneline

Este echivalent cu git log --oneline .

git log --pretty=fuller

Include multe detalii. Separează chiar autorul și comisarul care, teoretic, pot fi oameni diferiți:

Cu format: varianta, puteți furniza un șir care conține orice conținut doriți, inclusiv substituenți care sunt înlocuiți cu diferite date. Iată câteva exemple de substituenți:

  • % H comite hash
  • % h hash de comisare abreviat
  • %la data autorului
  • %Cu data autorului, ruda
  • % s comite subiectul mesajului
  • % b comite corpul mesajului
  • % p hashuri parentale prescurtate

Puteți adăuga caractere fixe la ieșire și le puteți colora. Acest exemplu arată, de asemenea, o variantă a formatului de dată:

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

Rețineți că parantezele înconjoară data. Indiferent de formatarea pe care o alegeți, dacă doriți ca ieșirea să fie utilă într-o conductă sau pentru alte forme de procesare a textului, ar trebui să luați în considerare cum să delimitați fiecare parte a ieșirii.

Se afișează difuzele în jurnal

Un detaliu important atunci când privim istoricul unui depozit sunt diferențele în sine. La urma urmei, reprezintă ceea ce s-a schimbat de fapt în cod! Pentru început, puteți obține un rezumat al modificărilor alături de fiecare commit folosind --shortstat :

git log --shortstat

Aceasta adaugă o linie precum:

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

În partea de jos a fiecărui angajament. Veți vedea deseori acest tip de rezumat - de-a lungul paginilor de pe GitHub, de exemplu - și este un mod util de a judeca rapid domeniul de aplicare al unui anumit commit. Pentru informații mai detaliate, puteți include ieșirea completă a patch-urilor (diffs) folosind -p steag:

git log -p

Filtrarea Git Log Output

Indiferent de formatarea pe care o aplicați, veți vedea în continuare jurnalul complet al tuturor validărilor în ramura curentă. Chiar dacă Git le împarte în pagini, poate fi totuși o mulțime de rezultate. Următoarele opțiuni vă permit să personalizați ce angajamente includ jurnalul.

Restricționarea în funcție de sumă

Dacă doriți doar să tăiați rezultatele pentru a afișa cele mai recente câteva confirmări, utilizați -[număr] sintaxă:

git log -2

Limitarea după dată

Pentru a restricționa setul de confirmări la un anumit interval de date, utilizați --de cand ( --după ) și --pana cand ( --inainte de ) Opțiuni. Acestea au fiecare o dată în format ISO 8601. Puteți folosi oricare --de cand sau --pana cand pe cont propriu sau ambele împreună pentru a specifica un interval. Opțiunile --după și --inainte de sunt sinonime.

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

Restricționare după fișier

Jurnalul Git se poate concentra pe un anumit fișier, mai degrabă decât pe fiecare fișier din depozitul dvs. Acest lucru este minunat pentru a vă ajuta să aflați cum s-a schimbat un anumit fișier în timp. Pur și simplu adăugați numele fișierului la sfârșitul comenzii git:

git log filename

Veți vedea numai acele confirmări care au fost afectate nume de fișier .

Diferențele dintre ramuri

Este posibil să aveți anumite cerințe unice atunci când vizualizați jurnalul unei sucursale. De exemplu, mai degrabă decât să vedeți întregul istoric, ați putea dori doar să vedeți ce s-a schimbat în acea ramură specifică. Jurnalul Git vă poate ajuta prin ref1..ref2 sintaxă. Există trei abordări ușor diferite pe care le puteți utiliza:

  1. Vizualizați comitetele care sunt în principal, dar nu ramură: git log --oneline origin/branch..origin/main
  2. Vizualizați confirmările care sunt în ramură, dar nu principale: git log --oneline origin/ main ..origin/ branch
  3. Vizualizați comitetele care există numai în ramură sau principal: git log --oneline origin/branch ... origin/main

Diferențele dintre două etichete

Așa cum puteți vedea istoricul între sucursale folosind ref1..ref2 sintaxă, puteți vizualiza, de asemenea, istoricul între etichete în același mod. La urma urmei, atât etichetele, cât și ramurile sunt tipuri de referință.

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

Dacă pregătiți note de lansare pentru un proiect mai mare, git shortlog ar trebui să fie primul dvs. port de escală. Produce o listă de autori cu subiecte dedicate alături. Puteți trece un interval de referință pentru a limita istoricul într-un mod similar cu jurnalul git:

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

The comanda git show este chiar mai versatil decât git log . Poate funcționa cu etichete și alte tipuri de obiecte git dincolo de istoricul de comitere. Împărtășește multe opțiuni cu git log , dar veți avea cu adevărat nevoie doar de el dacă trebuie să căutați detalii la nivel inferior.

Examinați trecutul cu jurnalul Git

Jurnalul Git este o comandă complicată, dar puteți obține o mulțime de utilizare din opțiunile sale de bază. Navigarea în istoricul unui depozit este un mod excelent de a înțelege cât de des apar modificările și câți oameni le fac. Odată ce ați înțeles bine istoria unui proiect, veți fi într-o poziție excelentă de a contribui singur la el.

cum pot recupera vechiul meu format Gmail
Acțiune Acțiune Tweet E-mail Alăturați-vă tendinței de codare socială și contribuiți la depozitele GitHub

Doriți să vă exersați mușchii de codare și să ajutați proiectele open source? Iată cum puteți contribui la GitHub.

Citiți în continuare
Subiecte asemănătoare
  • Programare
  • GitHub
  • Sfaturi de codare
Despre autor Bobby Jack(58 articole publicate)

Bobby este un pasionat de tehnologie care a lucrat ca dezvoltator de software timp de aproape două decenii. Este pasionat de jocuri, lucrează ca editor de recenzii la Switch Player Magazine și este cufundat în toate aspectele publicării online și dezvoltării web.

Mai multe de la Bobby Jack

Aboneaza-te la newsletter-ul nostru

Alăturați-vă newsletter-ului pentru sfaturi tehnice, recenzii, cărți electronice gratuite și oferte exclusive!

Faceți clic aici pentru a vă abona