Viena svarbiausių „Git“ teikiamų paslaugų yra projekto istorija. Kadangi „Git“ stebi visus saugykloje atliktų failų pakeitimus, jis gali pasiūlyti labai galingas registravimo funkcijas. Galite pateikti užklausą dėl projekto istorijos įvairiais būdais, o naudodami vieną lanksčią komandą galite išskleisti ir rodyti įvairius duomenis.
git žurnalas komanda yra didžiulė, didžiausia iš įprastų „Git“ komandų. Jo vadovas yra daugiau nei 2500 eilučių ilgio. Laimei, git žurnalas suteikia daug naudingiausio elgesio iš kelių pagrindinių variantų.
Pagrindinis registravimas naudojant numatytąjį elgesį
Pagal numatytuosius nustatymus git žurnalas rodo atvirkštinį chronologinį įsipareigojimų sąrašą. Kiekvienas įsipareigojimas apima jo maišos, autoriaus, datos ir įsipareigojimo pranešimą:
Komanda naudoja ieškiklį (pvz., Mažiau, daugiau), kad būtų rodoma visa išvestis, kad galėtumėte lengvai naršyti rezultatuose. Galite sukonfigūruoti „Git“ naudoti jūsų pasirinktą programą, pvz labiausiai ieškiklis.
Štai keletas git žurnalo išvesties iš „git“ šaltinio kodo saugykla pats:
įsipareigoti 670b81a890388c60b7032a4f5b879f2ece8c4558 (HEAD -> master, origin / next,
kilmė / meistras, kilmė / GALVA)
Autorius: Junio C Hamano
Data: pirmadienis birželio 14 d. 13:23:28 2021 +0900
Antroji partija
Pasirašė: Junio C Hamano
Rezultatas prasideda nuo įvykdymo maišos (670...), po kurio pateikiamas šakų, kurios šiuo metu nurodo tą įsipareigojimą, sąrašas (GALVA -> meistrasir kt.)
Kitoje eilutėje aprašomas šio įsipareigojimo autorius, nurodant jo vardą ir el. Pašto adresą.
Visa įsipareigojimo data ir laikas pateikiami kitoje eilutėje.
Galiausiai pasirodo visas įsipareigojimo pranešimo turinys. Galite valdyti daugumą visa kita, ką siūlo „git“ žurnalas, naudodami komandų eilutės parinktis. Yra du pagrindiniai variantų tipai:
- Formatavimas, kuris apibrėžia, kaip „Git“ rodo kiekvieną įsipareigojimą.
- Filtravimas, kuris apibrėžia, kuris įsipareigoja git žurnalas apima.
Be komandinės eilutės parinkčių, „git“ žurnalas priima argumentus, nurodančius failus, įsipareigojimus, filialus ar kitokio tipo nuorodas. Tai taikoma tolesniam filtravimui.
„Git“ žurnalo išvesties formatavimas
Vienas iš paprasčiausių pakeitimų yra --viena linija variantas, kuris pateikia labai trumpą išvestį:
git žurnalas - linija
Kiekvienoje žurnalo eilutėje dabar yra tik sutrumpintas įmaišymo maišas ir tema įsipareigojimo pranešimas. Tai puikus būdas apžvelgti naujausius įsipareigojimus projektui:
Deja, be jokio kito konteksto ši informacija ne visada yra tokia naudinga. Tai gali suteikti jums miglotą projektą jausmą, tačiau trūksta datų ir kitos naudingos informacijos apie autorius ir bylas.
Filialo grafiko peržiūra
--grafas parinktis leidžia vizualizuoti ryšius tarp šakų. Tai labai paprasta, tačiau gali padėti išnarplioti sudėtingą istoriją.
git žurnalas - linijinis - grafikas
Susijęs: Kaip sukurti naują filialą „Git“
Individualus gražus išėjimas
Galite pasiekti sudėtingesnį formatavimą, jį tiksliai nurodydami naudodami --graži variantą. Sintaksė eina nuo labai paprastos iki daug sudėtingesnės, taigi išsamios informacijos ieškokite vadove.
git žurnalas - gana = trumpas
Iš esmės yra tas pats git žurnalas be datos ar viso pranešimo:
git log - gana = tiesioginis
Yra lygiavertis git žurnalas - linija.
git log - gana = pilnesnis
Apima daug detalių. Tai netgi skiria autorių ir įsipareigotojus, kurie teoriškai gali būti skirtingi žmonės:
Su formatas: variantą, galite pateikti eilutę, kurioje yra bet koks norimas turinys, įskaitant vietos rezervavimo ženklus, pakeistus įvairiais duomenimis. Štai keli vietos rezervavimo ženklų pavyzdžiai:
- % H padaryti maišos
- % h sutrumpintas įsipareigoti maišos
- %Reklama autoriaus data
- % ar autoriaus data, giminaitė
- % s įsipareigoti pranešimo tema
- % b įvykdyti pranešimo turinį
- % p sutrumpinti tėvų maišos
Į išvestį galite pridėti fiksuotų simbolių ir juos spalvinti. Šiame pavyzdyje taip pat parodytas datos formato variantas:
„git log“ - gana = formatas: „% C (automatinis)% h [% ad]% s“ - data = trumpas
Atminkite, kad skliausteliuose yra data. Nepriklausomai nuo pasirinkto formatavimo, jei norite, kad išvestis būtų naudinga rengiant ar naudojant kitas teksto apdorojimo formas, turėtumėte apsvarstyti, kaip atskirti kiekvieną išvesties dalį.
Difų rodymas žurnale
Svarbi detalė, žiūrint į saugyklos istoriją, yra patys skirtumai. Jie juk atspindi tai, kas iš tikrųjų pasikeitė kode! Pradedantiesiems galite gauti pakeitimų suvestinę, naudodamiesi kiekvienu įsipareigojimu --šortas:
git žurnalas - trumpasis
Tai prideda tokią eilutę:
1 failas pakeistas, 48 įterpimai (+), 2 ištrinti (-)
Kiekvieno įsipareigojimo apačioje. Dažnai matysite tokią santrauką, pavyzdžiui, visuose „GitHub“ puslapiuose, ir tai yra naudingas būdas greitai įvertinti konkretaus įsipareigojimo apimtį. Norėdami gauti išsamesnės informacijos, galite įtraukti visą pleistro išvestį (skirtumus) naudodami -p vėliava:
git log -p
Filtruojamas Git žurnalo išvestis
Kad ir kokį formatą taikytumėte, vis tiek matysite išsamų visų įvykių žurnalą dabartiniame filiale. Nors „Git“ juos suskirsto į puslapius, vis tiek tai gali būti daugybė rezultatų. Šios parinktys leidžia tinkinti, kurį įsipareigojimą sudaro žurnalas.
Apribojimas pagal sumą
Jei norite tiesiog apkarpyti rezultatus, kad būtų rodomi keli naujausi įsipareigojimai, naudokite - [skaičius] sintaksė:
git žurnalas -2
Apribojimas pagal datą
Norėdami apriboti įsipareigojimų rinkinį iki tam tikros dienų sekos, naudokite --nuo (- po to) ir - iki (- prieš) galimybės. Kiekviena iš jų laiko ISO 8601 formato datą. Galite naudoti bet kurį --nuo arba - iki atskirai arba abu kartu nurodydami diapazoną. Variantai - po to ir - prieš yra sinonimai.
git log --since = "2021-01-01" - iki = "2021-05-01"
Apribojimas pagal failą
„Git“ žurnalas gali sutelkti dėmesį į konkretų failą, o ne į kiekvieną failą jūsų saugykloje. Tai puikiai padeda sužinoti, kaip tam tikras failas pasikeitė laikui bėgant. Tiesiog pridėkite failo pavadinimą savo „git“ komandos pabaigoje:
git žurnalo failo vardas
Matysite tik tuos įsipareigojimus, kurie paveikė failo pavadinimas.
Filialų skirtumai
Jums gali būti būdingi unikalūs reikalavimai, kai peržiūrite filialo žurnalą. Pavyzdžiui, užuot peržiūrėję visą istoriją, galbūt norėsite pamatyti, kas pasikeitė toje konkrečioje šakoje. „Git“ žurnalas gali padėti per ref1..ref2 sintaksė. Yra trys šiek tiek skirtingi metodai, kuriuos galite naudoti:
- Peržiūrėti įsipareigojimus, kurie yra pagrindiniai, bet ne šakiniai:
git log - pirminė kilmė / šaka..kilmė / pagrindinis
- Peržiūrėkite filialo įsipareigojimus, bet ne pagrindinius:
git log - linijos kilmė /pagrindinis..kilmė /atšaka
- Peržiūrėti įsipareigojimus, kurie egzistuoja tik filiale ar pagrindiniame filiale:
git log - linijos kilmė / šaka...kilmė / pagrindinis
Kaip galite peržiūrėti istoriją tarp filialų naudodami ref1..ref2 sintaksę, taip pat galite peržiūrėti žymų istoriją. Ir žymos, ir šakos yra nuorodų rūšys.
„git log“ - „abbrev-sitout“ - gana = formatas: „% h% ar% s“ v2.32.0-rc3..v2.32.0
Jei rengiate didesnio projekto išleidimo pastabas, „git“ dienoraštis turėtų būti jūsų pirmasis įplaukimo uostas. Joje sudaromas autorių sąrašas, šalia kurių yra įsipareigojimų subjektai. Galite perduoti atskaitos diapazoną, kad apribotumėte istoriją panašiai kaip „git“ žurnale:
„git shortlog“ v2.32.0-rc3..v2.32.0
git show komanda yra dar universalesnis nei git žurnalas. Jis gali dirbti su žymomis ir kitų tipų „git“ objektais, neįtraukiančiais į istoriją. Jis dalijasi daugybe galimybių git žurnalas, bet jums to tikrai prireiks tik tuo atveju, jei reikės įsigilinti į žemesnio lygio detales.
Peržiūrėkite praeitį su „Git Log“
„Git“ žurnalas yra sudėtinga komanda, tačiau naudodamiesi pagrindinėmis jos parinktimis galite daug naudoti. Naršymas saugyklos istorijoje yra puikus būdas suprasti, kaip dažnai įvyksta pokyčių ir kiek žmonių juos daro. Gerai supratę projekto istoriją, galėsite puikiai prisidėti prie jo patys.
Norite pasportuoti koduojančius raumenis ir padėti atvirojo kodo projektams? Štai kaip prisidėti prie „GitHub“.
Skaitykite toliau
- Programavimas
- „GitHub“
- Kodavimo patarimai

Bobis yra technologijų entuziastas, kuris beveik du dešimtmečius dirbo programinės įrangos kūrėju. Jis aistringai žaidžia, dirba „Review Player“ žurnalo apžvalgų redaktoriumi ir yra pasinėręs į visus internetinės leidybos ir interneto kūrimo aspektus.
Prenumeruokite mūsų naujienlaiškį
Prisijunkite prie mūsų naujienlaiškio, kuriame rasite techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!
Dar vienas žingsnis…!
Prašome patvirtinti savo el. Pašto adresą el. Laiške, kurį jums ką tik išsiuntėme.