Kaip patikrinti projekto istoriją naudojant „Git Log“

Kaip patikrinti projekto istoriją naudojant „Git Log“

Viena iš pagrindinių „Git“ teikiamų paslaugų yra projekto istorija. Kadangi „Git“ stebi visus saugykloje atliktų failų pakeitimus, ji gali pasiūlyti labai galingų registravimo funkcijų. Galite užklausti projekto istorijos įvairiais būdais ir išgauti bei rodyti įvairius duomenis naudodami vieną lanksčią komandą.





The git žurnalas komanda yra didžiulė, didžiausia iš įprastų „Git“ komandų. Jo vadovas yra daugiau nei 2500 eilučių. Laimei, git žurnalas suteikia daugumą naudingiausių elgsenų iš kelių pagrindinių parinkčių.





Pagrindinis registravimas naudojant numatytąjį elgesį

Pagal numatytuosius nustatymus git žurnalas parodytas atvirkštinis chronologinis įsipareigojimų sąrašas. Kiekvienas įsipareigojimas apima jo maišą, autorių, datą ir įsipareigojimo pranešimą:





Komanda naudoja peidžerį (pvz., Mažiau, daugiau), kad būtų parodyta visa produkcija, kad galėtumėte lengvai naršyti rezultatus. Galite sukonfigūruoti „Git“ naudoti jūsų pasirinktą programą, pvz.

Štai keletas „git“ žurnalo išvesties iš „git“ šaltinio kodo saugykla pats:



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

Rezultatas prasideda įvykdant maišą ( 670 ...) ir filialų, kurie šiuo metu nurodo tą įsipareigojimą, sąrašas ( GALVA -> meistras ir kt.)

kodėl sukčiai nori dovanų kortelių?

Kitoje eilutėje aprašomas šio įsipareigojimo autorius, nurodomas jo vardas ir el. Pašto adresas.





Visa įsipareigojimo data ir laikas pateikiami kitoje eilutėje.

Galiausiai pasirodo visas įsipareigojimo pranešimo turinys. Daugumą kitų dalykų, kuriuos siūlo „git“ žurnalas, galite valdyti naudodami komandų eilutės parinktis. Yra du pagrindiniai parinkčių tipai:





  • Formatavimas, kuris apibrėžia, kaip „Git“ pateikia kiekvieną įsipareigojimą.
  • Filtravimas, kuris nustato, kas įsipareigoja git žurnalas apima.

Be komandų eilutės parinkčių, „git“ žurnalas priima argumentus, nurodančius failus, įsipareigojimus, šakas ar kitas nuorodas. Tai taikoma tolesniam filtravimui.

Git žurnalo išvesties formatavimas

Vienas iš paprasčiausių koregavimų yra --viena linija parinktis, kuri duoda labai trumpą rezultatą:

git log --oneline

Dabar kiekvienoje žurnalo eilutėje yra tik sutrumpinta įsipareigojimo maiša ir įsipareigojimo pranešimo tema. 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ą projekto jausmą, tačiau jame nėra datų ir kitos naudingos informacijos apie autorius ir failus.

Filialo grafiko peržiūra

The -grafikas parinktis leidžia vizualizuoti ryšius tarp šakų. Tai labai paprasta, tačiau gali padėti išsiaiškinti sudėtingą istoriją.

git log --oneline --graph

Susijęs: Kaip sukurti naują filialą „Git“

Individualizuota gana išvestis

Sudėtingesnį formatavimą galite pasiekti nurodydami jį išsamiai naudodami --graži variantas. Sintaksė yra nuo labai paprastos iki daug sudėtingesnės išsamios informacijos ieškokite vadove .

kur galima atsisiųsti filmą nemokamai
git log --pretty=short

Iš esmės yra tas pats kaip git žurnalas be datos ar viso pranešimo:

git log --pretty=oneline

Yra lygiavertis git log -online .

git log --pretty=fuller

Apima daug detalių. Tai netgi atskiria autorių ir užsakovą, 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, kurie pakeičiami įvairiais duomenimis. Štai keletas vietos rezervavimo ženklų pavyzdžių:

  • %H padaryti maišą
  • %h sutrumpinta įsipareigojimo maiša
  • %iki autoriaus data
  • %Su autoriaus data, giminaitis
  • %s įteikti pranešimo temą
  • % b įteikti pranešimo turinį
  • %p sutrumpintos pirminės maišos

Prie išvesties galite pridėti fiksuotų simbolių ir juos nuspalvinti. Šis pavyzdys taip pat rodo datos formato variantą:

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

Atminkite, kad skliausteliuose yra data. Nepriklausomai nuo pasirinkto formatavimo, jei norite, kad išvestis būtų naudinga sraute ar kitoms teksto apdorojimo formoms, turėtumėte apsvarstyti, kaip atskirti kiekvieną išvesties dalį.

Rodomi skirtumai žurnale

Svarbi detalė, žiūrint į saugyklos istoriją, yra patys skirtumai. Galų gale jie atspindi tai, kas iš tikrųjų pasikeitė kode! Pradedantiesiems, kartu su kiekvienu įsipareigojimu galite gauti pakeitimų suvestinę -trumpas :

git log --shortstat

Tai prideda tokią eilutę:

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

Kiekvieno įsipareigojimo apačioje. Tokią santrauką dažnai matysite, 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ą pataisos išvestį (skirtumus) naudodami -p vėliava:

git log -p

Git žurnalo išvesties filtravimas

Kad ir kokį formatą taikytumėte, vis tiek matysite visą dabartinės šakos įsipareigojimų žurnalą. Nors „Git“ juos suskaido į puslapius, vis tiek gali būti daug išvesties. Šios parinktys leidžia jums tinkinti, kuriuos įsipareigojimus įtraukia žurnalas.

Apribojimas pagal kiekį

Jei norite tik apkarpyti rezultatus, kad būtų rodomi keli naujausi įsipareigojimai, naudokite -[skaičius] sintaksė:

git log -2

Apribojimas pagal datą

Norėdami apriboti įsipareigojimų rinkinį iki tam tikros dienų sekos, naudokite --nuo ( -po to ) ir -iki ( -anksčiau ) galimybės. Kiekvienas iš jų turi datą ISO 8601 formatu. Galite naudoti bet kurį --nuo arba -iki atskirai arba abu kartu, kad nurodytų diapazoną. Parinktys -po to ir -anksčiau yra sinonimai.

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

Apribojimas pagal failą

„Git“ žurnalas gali sutelkti dėmesį į konkretų failą, o ne į kiekvieną jūsų saugyklos failą. Tai puikiai padeda išsiaiškinti, kaip laikui bėgant pasikeitė tam tikras failas. Tiesiog pridėkite failo pavadinimą prie savo „git“ komandos pabaigos:

git log filename

Matysite tik tuos veiksmus, kurie turėjo įtakos failo pavadinimas .

Skirtumai tarp filialų

Žiūrėdami filialo žurnalą, galite kelti unikalių reikalavimų. Pvz., Užuot matę visą istoriją, galbūt norėsite pamatyti, kas pasikeitė toje konkrečioje šakoje. „Git“ žurnalas gali padėti per ref1..ref2 sintaksė. Galite naudoti tris šiek tiek skirtingus metodus:

  1. Peržiūrėkite įsipareigojimus, kurie yra pagrindiniai, bet ne šakiniai: | _+_ |
  2. Peržiūrėkite įsipareigojimus, kurie yra šakiniai, bet ne pagrindiniai: | _+_ |
  3. Peržiūrėkite įsipareigojimus, kurie egzistuoja tik filiale ar pagrindiniame skyriuje: | _+_ |

Skirtumai tarp dviejų žymų

Kaip ir galite peržiūrėti istoriją tarp šakų naudodami ref1..ref2 sintaksę, taip pat galite peržiūrėti istoriją tarp žymų. Galų gale, tiek žymos, tiek šakos yra nuorodos tipai.

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

Jei ruošiate didesnio projekto išleidimo pastabas, git trumpas dienoraštis turėtų būti pirmasis jūsų uostas. Jame sudaromas autorių sąrašas, šalia kurių yra ir dalykų. Galite perduoti jam atskaitos diapazoną, kad apribotumėte istoriją panašiai kaip „git log“:

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

The git show komanda yra dar universalesnis nei git žurnalas . Jis gali dirbti su žymomis ir kitų tipų „git“ objektais, išskyrus įsipareigojimų istoriją. Ji dalijasi daugybe variantų git žurnalas , bet jums to tikrai prireiks tik tuo atveju, jei turėsite įsigilinti į žemesnio lygio detales.

Peržiūrėkite praeitį su „Git Log“

„Git“ žurnalas yra sudėtinga komanda, tačiau iš pagrindinių jos parinkčių galite daug pasinaudoti. Naršymas saugyklos istorijoje yra puikus būdas suprasti, kaip dažnai vyksta pokyčiai ir kiek žmonių juos daro. Kai gerai suprasite projekto istoriją, turėsite puikią galimybę prisidėti prie jo.

Kaip atsisiųsti filmus iš svetainės
Dalintis Dalintis „Tweet“ Paštu Prisijunkite prie socialinio kodavimo tendencijos ir prisidėkite prie „GitHub“ saugyklų

Norite mankštinti savo kodavimo raumenis ir padėti atvirojo kodo projektams? Štai kaip prisidėti prie „GitHub“.

Skaityti toliau
Susijusios temos
  • Programavimas
  • „GitHub“
  • Kodavimo patarimai
Apie autorių Bobis Džekas(Paskelbti 58 straipsniai)

Bobby yra technologijų entuziastas, kuris beveik du dešimtmečius dirbo programinės įrangos kūrėju. Jis aistringai žaidžia, dirba „Switch Player Magazine“ apžvalgų redaktoriumi ir yra pasinėręs į visus internetinės publikacijos ir žiniatinklio kūrimo aspektus.

Daugiau iš Bobby Jack

Prenumeruokite mūsų naujienlaiškį

Prisijunkite prie mūsų naujienlaiškio, kad gautumėte techninių patarimų, apžvalgų, nemokamų el. Knygų ir išskirtinių pasiūlymų!

Norėdami užsiprenumeruoti, spustelėkite čia