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:
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:
- Zobraziť potvrdenia, ktoré sú v hlavnej, ale nie v pobočke:
git log - pôvod / vetva online.. pôvod / hlavný
- Zobraziť potvrdenia, ktoré sú v pobočke, ale nie sú hlavné:
git log - pôvod online /hlavný..pôvod /pobočka
- 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.
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
- Programovanie
- GitHub
- Tipy na kódovanie
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.
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.