Kako pregledati povijest projekta pomoću Git Log -a

Kako pregledati povijest projekta pomoću Git Log -a

Jedna od najosnovnijih usluga koje Git pruža je povijest projekta. Budući da Git prati sve promjene datoteka napravljene u spremištu, može ponuditi vrlo moćne značajke bilježenja. Povijest projekta možete pitati na mnogo različitih načina, a možete izdvojiti i prikazati različite podatke pomoću jedne fleksibilne naredbe.





The git log naredba je ogromna, najveća od svih redovnih Git naredbi. Njegov priručnik dugačak je preko 2500 redaka. Na sreću, git log pruža većinu svog najkorisnijeg ponašanja iz samo nekoliko ključnih opcija.





Osnovno bilježenje sa zadanim ponašanjem

Prema zadanim postavkama, git log prikazuje obrnuto-kronološki popis urezivanja. Svaka predaja uključuje svoj hash, autora, datum i poruku urezivanja:



Naredba koristi dojavljivač (npr. Manje, više) za prikaz cijelog izlaza tako da se možete jednostavno kretati po rezultatima. Git možete konfigurirati tako da koristi program po vašem izboru, poput najvećeg dojavljivača.

Evo izlaza git log iz spremište git izvornog koda sebe:



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

Rezultat počinje s hashom urezivanja ( 670 ...) nakon čega slijedi popis grana koje trenutno upućuju na to urezivanje ( GLAVA -> gospodar itd.)

izvadite videozapis s web stranice

Sljedeći redak opisuje autora ove predaje, navodeći njihovo ime i adresu e -pošte.





Puni datum i vrijeme predaje slijede u sljedećem retku.

Konačno, pojavljuje se cijeli sadržaj poruke urezivanja. Većinom svega ostalog što nudi git log možete kontrolirati pomoću opcija naredbenog retka. Postoje dvije glavne vrste opcija:





  • Oblikovanje, koje definira kako Git prikazuje svako urezivanje.
  • Filtriranje, koje definira koja urezivanja git log uključuje.

Osim opcija naredbenog retka, git log prihvaća argumente koji određuju datoteke, urezivanja, grane ili druge vrste referenci. To se odnosi na daljnje filtriranje.

Formatiranje Git Log Output -a

Jedna od najjednostavnijih prilagodbi je --jedna linija opcija koja daje vrlo kratak ispis:

git log --oneline

Svaki redak u dnevniku sada sadrži samo skraćeni hash urezivanja i predmet poruke urezivanja. Ovo je izvrstan način za pregled nedavnih obveza na projektu:

Nažalost, bez ikakvog drugog konteksta, ove informacije nisu uvijek toliko korisne. Možda će vam projekt dati neodređen osjećaj, ali nedostaju mu datumi i druge korisne informacije o autorima i datotekama.

Prikaz grana grana

The --graf opcija vam omogućuje vizualizaciju odnosa između grana. Vrlo je osnovno, ali može pomoći u raspetljavanju komplicirane povijesti.

git log --oneline --graph

Povezano: Kako stvoriti novu granu u Gitu

Prilagođeni lijepi izlaz

Možete postići složenije oblikovanje tako da ga detaljno navedete pomoću --prilično opcija. Sintaksa ide od vrlo jednostavne do mnogo složenije, pa za potpune pojedinosti potražite priručnik .

mbr ili gpt za Windows 10
git log --pretty=short

U osnovi je isto što i git log bez datuma ili potpune poruke:

git log --pretty=oneline

Ekvivalent je git log --oneline .

git log --pretty=fuller

Uključuje puno detalja. Čak razdvaja autora i počinitelja koji u teoriji mogu biti različiti ljudi:

S format: varijanti, možete navesti niz koji sadrži bilo koji sadržaj koji želite, uključujući rezervirana mjesta koja su zamijenjena različitim podacima. Evo nekoliko primjera rezerviranih mjesta:

  • %H predati hash
  • %h skraćeno commit hash
  • %do datum autora
  • %S datum autora, rođak
  • %s predati poruku poruke
  • % b urezivanje poruke tijela
  • %str skraćeni roditeljski hashevi

Izlazu možete dodati fiksne znakove i obojiti ga. Ovaj primjer također prikazuje varijaciju formata datuma:

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

Imajte na umu da zagrade okružuju datum. Bez obzira na oblikovanje koje odaberete, ako želite da ispis bude koristan u cjevovodu ili za druge oblike obrade teksta, trebali biste razmisliti kako razgraničiti svaki dio izlaza.

Prikaz razlika u zapisniku

Važan detalj pri proučavanju povijesti spremišta su same razlike. Na kraju krajeva, oni predstavljaju ono što se zapravo promijenilo u kodu! Za početak, možete dobiti sažetak promjena uz svako urezivanje pomoću -kratki prikaz :

git log --shortstat

Ovo dodaje redak poput:

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

Do dna svakog urezivanja. Često ćete vidjeti ovu vrstu sažetka - na stranicama na GitHubu, na primjer - i to je koristan način za brzo prosuđivanje opsega određene predaje. Za detaljnije informacije možete uključiti potpuni izlaz zakrpa (razlike) pomoću -str zastava:

git log -p

Filtriranje Git Log outputa

Bez obzira na oblikovanje koje primijenite, i dalje ćete vidjeti potpuni zapis svih urezivanja u trenutnoj grani. Iako ih Git dijeli na stranice, to ipak može biti puno rezultata. Sljedeće opcije omogućuju vam da prilagodite koja urezivanja zapisnik uključuje.

Ograničavanje po iznosu

Ako samo želite smanjiti rezultate kako biste prikazali nekoliko najnovijih urezivanja, upotrijebite -[broj] sintaksa:

git log -2

Ograničavanje prema datumu

Da biste ograničili skup predavanja na zadani datumski raspon, koristite --od ( --nakon ) i --do ( --prije ) opcije. Svaki od njih uzima datum u formatu ISO 8601. Možete koristiti bilo koje --od ili --do samostalno ili oboje zajedno kako bi odredili raspon. Opcije --nakon i --prije su sinonimi.

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

Ograničavanje datotekom

Git dnevnik može se usredotočiti na određenu datoteku, a ne na svaku datoteku u vašem spremištu. Ovo je izvrsno jer vam pomaže da saznate kako se određena datoteka promijenila tijekom vremena. Jednostavno dodajte naziv datoteke na kraj naredbe git:

git log filename

Vidjet ćete samo one urezivanja koja su utjecala naziv datoteke .

Razlike među granama

Možda ćete imati neke jedinstvene zahtjeve prilikom pregledavanja dnevnika grane. Na primjer, umjesto da vidite cijelu povijest, možda biste htjeli vidjeti što se promijenilo u toj grani. Git log može pomoći putem ref1..ref2 sintaksa. Postoje tri malo različita pristupa koja možete koristiti:

  1. Pogledajte urezivanja koja su u glavnoj, ali ne i grani: | _+_ |
  2. Pogledajte urezivanja koja su u grani, ali nisu glavna: | _+_ |
  3. Pogledajte urezivanja koja postoje samo u grani ili glavnom: | _+_ |

Razlike između dvije oznake

Baš kao što možete pregledati povijest između grana koristeći ref1..ref2 sintaksu, također možete pregledati povijest između oznaka na isti način. Uostalom, i oznake i grane su vrste referenci.

git log --oneline origin/branch..origin/main

Ako pripremate bilješke o izdanju za veći projekt, git shortlog trebao bi biti vaša prva luka. Sastavlja popis autora uz predane teme. Možete mu proslijediti referentni raspon kako biste ograničili povijest na sličan način kao git log:

git log --oneline origin/ main ..origin/ branch

The git show naredba još je svestraniji od git log . Može raditi s oznakama i drugim vrstama git objekata izvan povijesti urezivanja. Dijeli mnoge mogućnosti s git log , ali zaista će vam trebati samo ako trebate ući u detalje niže razine.

Pregledajte prošlost s Git Log -om

Git log je komplicirana naredba, ali možete imati puno koristi od njegovih najosnovnijih opcija. Pregledavanje povijesti spremišta izvrstan je način da shvatite koliko često dolazi do promjena i koliko ih ljudi čini. Nakon što dobro razumijete povijest projekta, bit ćete u izvrsnoj poziciji da tome i sami doprinesete.

kako hakirati sim karticu za besplatnu uslugu
Udio Udio Cvrkut E -pošta Pridružite se trendu društvenog kodiranja i pridonesite GitHub spremištu

Želite vježbati mišiće za kodiranje i pomoći projektima otvorenog koda? Evo kako pridonijeti GitHubu.

Pročitajte Dalje
Povezane teme
  • Programiranje
  • GitHub
  • Savjeti za kodiranje
O autoru Bobby Jack(Objavljeno 58 članaka)

Bobby je entuzijast u tehnologiji koji je skoro dva desetljeća radio kao programer softvera. Oduševljen je igranjem igara, radi kao urednik recenzija u Switch Player Magazinu, a uronjen je u sve aspekte online izdavaštva i web razvoja.

Više od Bobbyja Jacka

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu