Eden najbolj temeljnih storitev, ki jih ponuja Git, je zgodovina projekta. Ker Git beleži vse spremembe datotek v repozitoriju, lahko ponuja zelo zmogljive funkcije beleženja. Zgodovino projekta lahko poizvedujete na več različnih načinov, z enim prilagodljivim ukazom pa lahko izvlečete in prikažete različne podatke.

The git log ukaz je ogromen, največji med običajnimi ukazi Git. Njegov priročnik je dolg več kot 2500 vrstic. Na srečo git log ponuja veliko svojega najbolj uporabnega vedenja iz samo nekaj ključnih možnosti.

Osnovno beleženje s privzetim vedenjem

Privzeto, git log prikazuje obratno kronološki seznam obvez. Vsaka objava vključuje svoje razpršeno sporočilo, avtorja, datum in sporočilo objave:

Ukaz s pozivom (npr. Manj, več) prikaže celoten izhod, tako da lahko enostavno krmarite po rezultatih. Git lahko konfigurirate tako, da uporablja program po vaši izbiri, na primer najbolj pozivniku.

Tukaj je nekaj izpisov git dnevnika iz repozitorij izvorne kode git sam:

zaveži 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin / next,

izvor / mojster, izvor / GLAVA)
Avtor: Junio ​​C Hamano
Datum: Ponedeljek, 14. junij 13:23:28 2021 +0900
Druga serija
Podpisal: Junio ​​C Hamano

Rezultat se začne s zgoščeno predajo (670...), ki mu sledi seznam podružnic, ki trenutno kažejo na to odobritev (GLAVA -> mojsteritd.)

V naslednji vrstici je opisan avtor te objave z navedbo imena in e-poštnega naslova.

Celoten datum in čas prevzema sledi v naslednji vrstici.

Na koncu se prikaže celotna vsebina sporočila za objavo. 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 objavo.
  • Filtriranje, ki določa, katere zaveze git log vključuje.

Poleg možnosti ukazne vrstice git log sprejema tudi argumente, ki določajo datoteke, zaveze, veje ali druge vrste sklicev. Ti veljajo za nadaljnje filtriranje.

Oblikovanje izhoda dnevnika Git

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

git log --oneline

Vsaka vrstica v dnevniku zdaj vsebuje samo skrajšani zgoščeni hash in zadevo sporočilo objave. To je odličen način za pridobitev pregleda nedavnih prevzetih obveznosti v projektu:

Na žalost te informacije v nobenem drugem kontekstu niso vedno tako koristne. Morda boste imeli nejasen občutek za projekt, vendar mu manjkajo datumi in druge koristne informacije o avtorjih in datotekah.

Ogled grafa podružnice

The --graph možnost vam omogoča vizualizacijo odnosov med vejami. Je zelo osnovno, vendar lahko pomaga razvozlati zapleteno zgodovino.

git log --oneline --graph

Sorodno: Kako ustvariti novo vejo v Gitu

Prilagojen lep izhod

Zapletenejše oblikovanje lahko dosežete tako, da ga podrobno določite s pomočjo --lepa možnost. Sintaksa gre od zelo preproste do veliko bolj zapletene, torej Za popolne podrobnosti glejte priročnik.

git log --pretty = kratek

Je v bistvu enako kot git log brez datuma ali celotnega sporočila:

git log --pretty = ena vrstica

Je enakovredno git log --oneline.

git log --pretty = polnejši

Vključuje veliko podrobnosti. Ločuje celo avtorja in storilca, ki sta teoretično različna človeka:

Z format: različico, lahko vnesete niz, ki vsebuje želeno vsebino, vključno z ogradami, ki jih nadomestijo različni podatki. Tu je nekaj primerov ograd:

  • % H zaveži razpršeno
  • % h skrajšana zgoščena oznaka
  • % oglas datum avtorja
  • % ar avtor datum, sorodnik
  • % s zaveži predmet sporočila
  • % b zaveži telo sporočila
  • % p skrajšane nadrejene haše

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

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

Upoštevajte, da oklepaji obkrožajo datum. Ne glede na izbrano oblikovanje, če želite, da je izhod koristen v cevovodu ali za druge oblike obdelave besedila, razmislite o tem, kako razmejiti vsak del izhoda.

Prikaz razlik v dnevniku

Pomembna podrobnost pri pregledu zgodovine odlagališča so sami razlike. Predstavljajo, kaj se je v kodi dejansko spremenilo! Za začetek lahko dobite povzetek sprememb poleg vsake uporabe - kratke hlače:

git log --shortstat

To doda vrstico, kot je:

1 datoteka spremenjena, 48 vstavkov (+), 2 izbrisa (-)

Na koncu vsake zaveze. Takšen povzetek boste pogosto videli - na primer na straneh v GitHubu - in je koristen način za hitro ocenjevanje obsega določene zaveze. Za podrobnejše informacije lahko vključite celoten izhod popravka (razlike) z uporabo -p zastava:

git log -p

Filtriranje izhoda dnevnika Git

Ne glede na oblikovanje, ki ga uporabite, boste še vedno videli celoten dnevnik vseh predaj v trenutni veji. Čeprav jih Git razdeli na strani, je to vseeno lahko veliko rezultatov. Naslednje možnosti vam omogočajo, da prilagodite, kateri zaveže dnevnik.

Omejitev po znesku

Če želite le obrezati rezultate, da bodo prikazani najnovejši nekaj prevzemov, uporabite - [številka] sintaksa:

git log -2

Omejitev po datumu

Če želite nabor obvez omejiti na določeno časovno obdobje, uporabite --od (- pozneje) in - dokler (- prej) opcije. Vsak ima datum v formatu ISO 8601. Lahko uporabite katero koli --od ali - dokler sami ali oboje skupaj, da določite obseg. Možnosti - pozneje in - prej so sopomenke.

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

Omejitev po datoteki

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

git log ime datoteke

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

Razlike med vejami

Morda imate nekatere edinstvene zahteve pri ogledu dnevnika podružnice. Na primer, namesto da bi videli celotno zgodovino, boste morda želeli samo videti, kaj se je spremenilo v tej določeni veji. Git log vam lahko pomaga prek ref1..ref2 skladnja. Obstajajo trije nekoliko različni pristopi:

  1. Oglejte si zaveze, ki so v glavnem, ne pa tudi podružnice:
    git log --oneline izvor / veja..origin / main
  2. Oglejte si zaveze, ki so v veji, vendar ne glavne:
    git log --oneline izvor /glavni..origin /podružnica
  3. Oglejte si zaveze, ki obstajajo samo v podružnici ali glavni:
    git log --oneline izvor / veja...izvor / glavni

Tako kot si lahko ogledate zgodovino med vejami s pomočjo ref1..ref2 sintaksa, si lahko zgodovino med oznakami ogledate tudi na enak način. Navsezadnje so oznake in veje vrste referenc.

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

Če pripravljate opombe ob izdaji za večji projekt, git shortlog mora biti vaše prvo pristanišče. Pripravi seznam avtorjev, ki poleg njih vsebujejo predmete. Lahko mu posredujete referenčni obseg, da zgodovino omejite na podoben način kot git log:

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

The git show ukaz je celo bolj vsestranski kot git log. Deluje lahko z oznakami in drugimi vrstami predmetov git zunaj zgodovine predaj. Ima veliko možnosti git log, vendar ga boste zares potrebovali le, če boste potrebovali podrobnosti na nižji ravni.

Preglejte preteklost z dnevnikom Git

Git log je zapleten ukaz, vendar lahko od njegovih najosnovnejših možnosti veliko uporabite. Brskanje po zgodovini skladišča je odličen način za razumevanje, kako pogosto se spremembe pojavljajo in koliko ljudi jih naredi. Ko boste dobro razumeli zgodovino projekta, boste v odličnem položaju, da boste k temu prispevali tudi sami.

E-naslov
Pridružite se trendu socialnega kodiranja in prispevajte v repozitorije GitHub

Bi radi vadili svoje kodirajoče mišice in pomagali odprtokodnim projektom? Tukaj je opisano, kako prispevati k GitHubu.

Preberite Naprej

Sorodne teme
  • Programiranje
  • GitHub
  • Nasveti za kodiranje
O avtorju
Bobby Jack (54 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 mnenj pri reviji Switch Player in je poglobljen 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, preglede, brezplačne e-knjige in ekskluzivne ponudbe!

Še en korak…!

Potrdite svoj e-poštni naslov v e-poštnem sporočilu, ki smo vam ga pravkar poslali.

.