Jednou z najzákladnejších služieb poskytovaných spoločnosťou Git je história projektu. Pretože Git sleduje všetky zmeny súborov vykonaných v úložisku, môže ponúkať veľmi výkonné funkcie protokolovania. Môžete dotazovať na históriu projektu rôznymi spôsobmi a pomocou jedného flexibilného príkazu môžete extrahovať a zobraziť rôzne údaje.

The git log príkaz je obrovský, najväčší zo všetkých bežných príkazov Git. Jeho manuál má viac ako 2 500 riadkov. Našťastie git log poskytuje väčšinu svojho najužitočnejšieho správania iba z niekoľkých kľúčových možností.

Základné protokolovanie s predvoleným správaním

Predvolene, git log zobrazuje obrátene-chronologický zoznam záväzkov. Každé potvrdenie obsahuje jeho hash, autora, dátum a správu o potvrdení:

Príkaz používa na zobrazenie celého výstupu pager (napr. Menej, viac), aby ste sa mohli ľahko pohybovať vo výsledkoch. Môžete nakonfigurovať Git tak, aby používal program podľa vášho výberu, ako napr najviac pager.

Tu je niekoľko výstupov protokolu git z úložisko zdrojového kódu git sám:

instagram viewer
spáchať 670b81a890388c60b7032a4f5b879f2ece8c4558 (HLAVA -> pán, pôvod / nasledujúci,
origin / master, origin / HEAD)
Autor: Junio ​​C Hamano
Dátum: pondelok 14. júna 13:23:28 2021 +0900
Druhá várka
Podpísal: Junio ​​C Hamano

Výsledok začína hashom potvrdenia (670...), za ktorým nasleduje zoznam pobočiek, ktoré momentálne smerujú na dané potvrdenie (HLAVA -> pán, atď.)

V ďalšom riadku je uvedený autor tohto potvrdenia, jeho meno a e-mailová adresa.

Celý dátum a čas spáchania nasleduje na ďalšom riadku.

Nakoniec sa zobrazí celý obsah správy o potvrdení. Všetko, čo ponúka git log, môžete ovládať pomocou možností príkazového riadku. Existujú dva hlavné typy možností:

  • Formátovanie, ktoré definuje, ako Git zobrazuje jednotlivé potvrdenia.
  • Filtrovanie, ktoré definuje, ktoré sa zaviaže git log zahŕňa.

Okrem možností príkazového riadku prijíma git log argumenty, ktoré určujú súbory, potvrdenia, vetvy alebo iné typy odkazov. Tieto uplatňujú ďalšie filtrovanie.

Formátovanie výstupu protokolu Git

Jednou z najjednoduchších úprav je --jedna čiara možnosť, ktorá produkuje veľmi krátky výstup:

git log - online

Každý riadok v denníku teraz obsahuje iba skrátený hash potvrdenia a predmet správa o potvrdení. Toto je vynikajúci spôsob, ako získať prehľad o nedávnych záväzkoch k projektu:

Bohužiaľ, bez ďalších súvislostí nie sú tieto informácie vždy také užitočné. Môže to byť pre projekt nejasné, ale chýbajú v ňom dátumy a ďalšie užitočné informácie o autoroch a súboroch.

Prezeranie vetvového grafu

The --graf Táto voľba umožňuje vizualizovať vzťahy medzi pobočkami. Je to veľmi základné, ale môže to pomôcť rozmotať komplikovanú históriu.

git log - online - graf

Súvisiace: Ako vytvoriť novú pobočku v Gite

Prispôsobený pekný výstup

Komplikovanejšie formátovanie dosiahnete jeho podrobným zadaním pomocou - pekný možnosť. Syntax ide od veľmi jednoduchej po oveľa zložitejšiu ďalšie podrobnosti nájdete v príručke.

git log --pretty = krátke

Je v podstate to isté ako git log bez dátumu alebo úplnej správy:

git log --pretty = jeden riadok

Je ekvivalentom k git log - online.

git log --pretty = plnší

Zahŕňa veľa podrobností. Rozdeľuje dokonca autora a prispievateľa, ktorí môžu byť teoreticky rôzni ľudia:

Vďaka formát: variant môžete zadať reťazec obsahujúci akýkoľvek požadovaný obsah vrátane zástupných znakov, ktoré sú nahradené rôznymi údajmi. Tu je niekoľko príkladov zástupných symbolov:

  • % H spáchať hash
  • % h skrátené potvrdenie hash
  • % reklamy dátum autora
  • % ar autor dátum, príbuzný
  • % s predmet správy
  • % b telo správy potvrdenia
  • % str skrátený rodičovský hash

Do výstupu môžete pridať pevné znaky a zafarbiť ho. Tento príklad tiež zobrazuje variáciu formátu dátumu:

git log --pretty = formát: '% C (auto)% h [% ad]% s' --date = krátke

Upozorňujeme, že zátvorky ohraničujú dátum. Nech už zvolíte akékoľvek formátovanie, ak chcete, aby bol výstup užitočný v kanáli alebo pre iné formy spracovania textu, mali by ste zvážiť, ako ohraničiť každú časť výstupu.

Zobrazujú sa rozdiely v denníku

Dôležitým detailom pri pohľade na históriu úložiska sú samotné rozdiely. Predstavujú koniec koncov to, čo sa v kóde skutočne zmenilo! Pre začiatočníkov môžete získať súhrn zmien pri každom použití potvrdenia --shortstat:

git log --shortstat

Týmto sa pridá riadok ako:

1 súbor zmenený, 48 vložení (+), 2 odstránenia (-)

Do dolnej časti každého potvrdenia. Tento druh súhrnu sa často stretnete - napríklad na stránkach GitHub - a je to užitočný spôsob, ako rýchlo posúdiť rozsah konkrétneho potvrdenia. Podrobnejšie informácie môžete zahrnúť celý výstup opravy (rozdiel) pomocou príkazu -p vlajka:

git log -p

Filtrovanie výstupu protokolu Git

Bez ohľadu na to, aké formátovanie použijete, stále sa vám zobrazí kompletný denník všetkých záväzkov v aktuálnej vetve. Aj keď ich Git rozdelí na stránky, stále to môže byť veľa výstupu. Nasledujúce možnosti vám umožňujú prispôsobiť, ktoré potvrdenie obsahuje, že protokol obsahuje.

Obmedzenie podľa sumy

Ak chcete iba orezať výsledky tak, aby zobrazovali posledných niekoľko záväzkov, použite - [číslo] syntax:

git log -2

Obmedzenie podľa dátumu

Ak chcete obmedziť skupinu záväzkov na dané časové obdobie, použite --odvtedy (- potom) a - kým (- skôr) možnosti. Každý z nich má rande vo formáte ISO 8601. Môžete použiť buď --odvtedy alebo - kým samostatne alebo obidve spolu, aby určili rozsah. Možnosti - potom a - skôr sú synonymá.

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

Obmedzenie podľa súboru

Git log sa môže zamerať skôr na konkrétny súbor ako na každý súbor vo vašom úložisku. Je to skvelé riešenie, ktoré vám pomôže zistiť, ako sa konkrétny súbor v priebehu času zmenil. Jednoducho pripojte názov súboru na koniec príkazu git:

názov súboru git log

Uvidíte iba tie záväzky, ktoré sa to dotkli názov súboru.

Rozdiely medzi pobočkami

Pri prezeraní protokolu pobočky môžete mať niektoré jedinečné požiadavky. Namiesto celej histórie by vás napríklad mohlo zaujímať, čo sa zmenilo v konkrétnej vetve. Git log vám môže pomôcť prostredníctvom ref1..ref2 syntax. Môžete použiť tri mierne odlišné prístupy:

  1. Zobraziť potvrdenia, ktoré sú v hlavnej, ale nie v pobočke:
    git log - pôvod / vetva online.. pôvod / hlavný
  2. Zobraziť potvrdenia, ktoré sú v pobočke, ale nie sú hlavné:
    git log - pôvod online /hlavný..pôvod /pobočka
  3. Zobraziť potvrdenia, ktoré existujú iba v pobočke alebo hlavnej časti:
    git log - pôvod / pobočka online...pôvod / hlavný

Rovnako ako si môžete zobraziť históriu medzi pobočkami pomocou ref1..ref2 syntaxe, rovnakým spôsobom môžete tiež zobraziť históriu medzi značkami. Koniec koncov, značky aj vetvy sú typmi odkazov.

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

Ak pripravujete poznámky k vydaniu pre väčší projekt, git shortlog by mal byť váš prvý prístav. Vypracúva zoznam autorov, ktorí majú vedľa seba predmety zadania. Môžete mu odovzdať referenčný rozsah na obmedzenie histórie podobným spôsobom ako v git log:

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

The príkaz git show je ešte všestrannejšia ako git log. Môže pracovať so značkami a inými typmi objektov git nad rámec histórie odovzdania. Zdieľa veľa možností s git log, ale budete to skutočne potrebovať iba v prípade, že potrebujete prehĺbiť podrobnosti nižšej úrovne.

Prezrite si minulosť pomocou protokolu Git

Git log je komplikovaný príkaz, ale jeho najzákladnejšie možnosti môžete veľa využiť. Prehliadanie histórie úložiska je vynikajúcim spôsobom, ako pochopiť, ako často sa zmeny vyskytujú a koľko ľudí ich robí. Keď dobre pochopíte históriu projektu, budete v skvelej pozícii, aby ste doň sami prispeli.

Email
Pripojte sa k trendu kódovania v sociálnej sieti a prispievajte do úložísk GitHub

Chcete si precvičiť svoje kódovacie svaly a pomôcť projektom s otvoreným zdrojom? Tu je postup, ako prispieť do GitHubu.

Prečítajte si Ďalej

Súvisiace témy
  • Programovanie
  • GitHub
  • Tipy na kódovanie
O autorovi
Bobby Jack (Publikovaných 54 článkov)

Bobby je technologický nadšenec, ktorý takmer dve desaťročia pracoval ako vývojár softvéru. Je vášnivým hrám, pracuje ako redaktor recenzií v magazíne Switch Player Magazine a je ponorený do všetkých aspektov online publikovania a vývoja webu.

Viac od Bobbyho Jacka

Prihlásiť sa ku odberu noviniek

Pripojte sa k nášmu bulletinu s technickými tipmi, recenziami, bezplatnými elektronickými knihami a exkluzívnymi ponukami!

Ešte jeden krok…!

V e-maile, ktorý sme vám práve poslali, potvrďte svoju e-mailovú adresu.

.