Kako pregledati zgodovino projekta z Git Log

Kako pregledati zgodovino projekta z Git Log

Ena najpomembnejših storitev, ki jih ponuja Git, je zgodovina projekta. Ker Git spremlja vse spremembe datotek v skladišču, lahko ponudi zelo zmogljive funkcije beleženja. Zgodovino projekta lahko povprašate na različne načine, z enim prilagodljivim ukazom pa lahko izvlečete in prikažete različne podatke.





The git log ukaz je ogromen, največji od vseh običajnih ukazov Git. Njegov priročnik je dolg več kot 2500 vrstic. Na srečo, git log ponuja le nekaj svojih najbolj uporabnih vedenj.





Osnovno beleženje s privzetim vedenjem

Privzeto, git log prikazuje obratno-kronološki seznam zavez. Vsaka zaveza vključuje svoje hash, avtorja, datum in sporočilo o predaji:





Ukaz uporablja pager (npr. Manj, več) za prikaz celotnega izhoda, tako da lahko preprosto krmarite po rezultatih. Git lahko konfigurirate tako, da uporablja program po vaši izbiri, na primer najbolj peger.

Tukaj je nekaj izhodov dnevnika git iz skladišče izvorne kode git sama:



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 se začne z razpršilnikom potrditve ( 670 ...), sledi seznam vej, ki trenutno kažejo na to zavezo ( GLAVA -> mojster itd.)

da bo windows 7 videti kot xp

Naslednja vrstica opisuje avtorja te zaveze z navedbo njihovega imena in e -poštnega naslova.





Celoten datum in čas zaveze sledita v naslednji vrstici.

Končno se prikaže celotna vsebina sporočila o predaji. Večino vsega, kar ponuja git log, lahko nadzirate z možnostmi ukazne vrstice. Obstajata dve glavni vrsti možnosti:





  • Oblikovanje, ki določa, kako Git prikaže vsako potrditev.
  • Filtriranje, ki določa, katere zaveze git log vključuje.

Poleg možnosti ukazne vrstice git log sprejema tudi argumente, ki določajo datoteke, urejanja, veje ali druge vrste sklicev. To velja za dodatno filtriranje.

Oblikovanje izhoda dnevnika Git

Ena najpreprostejših prilagoditev je --oneline možnost, ki daje zelo kratek izpis:

git log --oneline

Vsaka vrstica v dnevniku zdaj vsebuje le skrajšano zgoščeno vrstico in zadevo sporočila o predaji. To je odličen način za pregled nedavnih obveznosti projekta:

Žal brez drugih kontekstov te informacije niso vedno tako koristne. Morda vam bo projekt dal nejasen občutek, vendar nima datumov in drugih koristnih informacij o avtorjih in datotekah.

Ogled grafa vej

The --graf možnost vam omogoča vizualizacijo odnosov med vejami. To je zelo osnovno, vendar lahko pomaga pri razpletu zapletene zgodovine.

git log --oneline --graph

Povezano: Kako ustvariti novo vejo v Gitu

Prilagojen Pretty Output

Komplicirano oblikovanje lahko dosežete tako, da ga podrobno navedete s pomočjo --lepa možnost. Sintaksa sega od zelo preproste do veliko bolj zapletene, torej za podrobnosti glejte priročnik .

kako vplivati ​​na pomen
git log --pretty=short

V bistvu je isto kot git log brez datuma ali celotnega sporočila:

git log --pretty=oneline

Je enakovredno git log --oneline .

git log --pretty=fuller

Vključuje veliko podrobnosti. Ločuje celo avtorja in zavezujočega, ki sta teoretično lahko različna:

S format: različico, lahko vnesete niz, ki vsebuje poljubno vsebino, vključno z ogradami, ki jih nadomestijo različni podatki. Tu je nekaj primerov nadomestnih znakov:

  • %H naloži hash
  • %h skrajšano zgoščevanje hash
  • %do datum avtorja
  • %Z datum avtorja, sorodnik
  • %s vnesite zadevo sporočila
  • % b telo sporočila za urejanje
  • %str skrajšani nadrejeni hashi

Izhodu lahko dodate fiksne znake in jih pobarvate. Ta primer prikazuje tudi spremembo oblike zapisa datuma:

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

Upoštevajte, da oklepaji obdajajo datum. Ne glede na oblikovanje, ki ga izberete, če želite, da je izhod uporaben v teku ali za druge oblike obdelave besedila, razmislite, kako razmejiti vsak del izpisa.

Prikaz razlik v dnevniku

Pomembna podrobnost pri pregledu zgodovine skladišča so same razlike. Navsezadnje predstavljajo tisto, kar se je v kodi dejansko spremenilo! Za začetek lahko dobite povzetek sprememb ob vsaki uporabi -kratki :

git log --shortstat

To doda vrstico, kot je:

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

Na dnu vsake zaveze. Pogosto boste videli takšen povzetek - na primer na straneh v GitHubu - in je koristen način za hitro presojo obsega določene zaveze. Za podrobnejše informacije lahko vključite celoten izhod popravkov (razlike) z uporabo datoteke -str zastava:

git log -p

Filtriranje izhoda dnevnika Git

Ne glede na oblikovanje, ki ga uporabljate, boste še vedno videli celoten dnevnik vseh oddaj v trenutni veji. Čeprav jih Git razčleni na strani, je lahko še vedno veliko rezultatov. Naslednje možnosti vam omogočajo, da prilagodite, katere zaveze vsebuje dnevnik.

Omejitev glede na znesek

Če želite samo obrezati rezultate, da prikažete nekaj najnovejših oddaj, uporabite -[številka] skladnja:

git log -2

Omejitev po datumu

Če želite omejiti nabor zavez na določeno časovno obdobje, uporabite --od ( -kasneje ) in -dokler ( -prej ) opcije. Vsak od njih ima datum v formatu ISO 8601. Uporabite lahko eno ali drugo --od ali -dokler sami ali oboje skupaj, da določite obseg. Možnosti -kasneje in -prej so sopomenki.

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

Omejitev po datoteki

Git log se lahko osredotoči na določeno datoteko in ne na vsako datoteko v vašem skladišču. To je odlično za pomoč pri ugotavljanju, kako se je določena datoteka sčasoma spremenila. Preprosto dodajte ime datoteke na konec ukaza git:

git log filename

Videli boste le tiste zaveze, ki so vplivale Ime datoteke .

Razlike med vejami

Pri ogledu dnevnika veje boste morda imeli nekaj edinstvenih zahtev. Na primer, namesto da bi videli celotno zgodovino, boste morda želeli videti, kaj se je v tej veji spremenilo. Git log lahko pomaga prek ref1..ref2 sintakso. Uporabite lahko tri nekoliko različne pristope:

  1. Ogled oddaj, ki so v glavni, vendar ne podružnici: | _+_ |
  2. Ogled oddaj, ki so v veji, vendar niso glavni: | _+_ |
  3. Ogled oddaj, ki obstajajo samo v veji ali glavni: | _+_ |

Razlike med dvema oznakama

Tako kot si lahko ogledate zgodovino med vejami z uporabo ref1..ref2 sintakso, na enak način si lahko ogledate tudi zgodovino med oznakami. Konec koncev sta obe oznaki in veji referenčni.

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

Če pripravljate opombe ob izdaji za večji projekt, git shortlog bi moralo biti vaše prvo pristanišče. Ustvari seznam avtorjev, ki imajo ob sebi zavezane teme. Lahko mu posredujete referenčni obseg, da omejite zgodovino na podoben način kot git log:

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

The git show ukaz je še bolj vsestranski kot git log . Lahko deluje z oznakami in drugimi vrstami predmetov git, ki presegajo zgodovino sporočil. Ima veliko možnosti za git log , vendar ga boste resnično potrebovali le, če se boste morali poglobiti v podrobnosti na nižji ravni.

Preglejte preteklost z dnevnikom Git

Git log je zapleten ukaz, vendar lahko iz njegovih osnovnih možnosti veliko uporabite. Brskanje po zgodovini skladišča je odličen način za razumevanje, kako pogosto pride do sprememb in koliko ljudi jih naredi. Ko boste dobro razumeli zgodovino projekta, boste lahko odlično prispevali k temu.

kako izbrišem objavo s facebooka
Deliti Deliti Cvrkutati E-naslov Pridružite se trendu socialnega kodiranja in prispevajte v skladišča GitHub

Želite razgibati mišice za kodiranje in pomagati pri odprtokodnih projektih? Evo, kako lahko prispevate k GitHubu.

Preberite Naprej
Sorodne teme
  • Programiranje
  • GitHub
  • Nasveti za kodiranje
O avtorju Bobby Jack(58 objavljenih člankov)

Bobby je tehnološki navdušenec, ki je več kot dve desetletji delal kot razvijalec programske opreme. Navdušen je nad igranjem iger, dela kot urednik recenzij v reviji Switch Player in je potopljen v vse vidike spletnega založništva in spletnega razvoja.

Več od Bobbyja Jacka

Naročite se na naše novice

Pridružite se našemu glasilu za tehnične nasvete, ocene, brezplačne e -knjige in ekskluzivne ponudbe!

Kliknite tukaj, če se želite naročiti