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:
- Ogled oddaj, ki so v glavni, vendar ne podružnici: | _+_ |
- Ogled oddaj, ki so v veji, vendar niso glavni: | _+_ |
- 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
Sorodni ukazi
Č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 facebookaDeliti 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
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 JackaNaroč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