Jak zkontrolovat historii projektu pomocí protokolu Git

Jak zkontrolovat historii projektu pomocí protokolu Git

Jednou z nejzákladnějších služeb poskytovaných Gitem je historie projektu. Protože Git sleduje všechny změny v souborech provedených v úložišti, může nabídnout velmi výkonné funkce protokolování. Na historii projektu se můžete ptát mnoha různými způsoby a pomocí jednoho flexibilního příkazu můžete extrahovat a zobrazovat různá data.





The git log příkaz je obrovský, největší ze všech běžných příkazů Git. Jeho manuál je dlouhý přes 2 500 řádků. Naštěstí, git log poskytuje většinu ze svého nejužitečnějšího chování z několika klíčových možností.





Základní protokolování s výchozím chováním

Ve výchozím stavu, git log ukazuje reverzně chronologický seznam potvrzení. Každé potvrzení obsahuje zprávu hash, autora, datum a potvrzení:





Příkaz používá pager (např. Méně, více) k zobrazení úplného výstupu, takže můžete snadno procházet výsledky. Git můžete nakonfigurovat tak, aby používal program podle vašeho výběru, jako je například většina pagerů.

Zde je několik výstupů protokolu git úložiště zdrojového kódu git sám:



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

Výsledek začíná hašováním potvrzení ( 670 ...) následovaný seznamem poboček, které aktuálně ukazují na toto potvrzení ( HLAVA -> mistr , atd.)

co je fond tvůrce na tiktok

Další řádek popisuje autora tohoto potvrzení s uvedením jeho jména a e -mailové adresy.





Na dalším řádku následuje úplné datum a čas potvrzení.

Nakonec se zobrazí úplný obsah zprávy o potvrzení. Většinu všeho ostatního, co git log nabízí, můžete ovládat pomocí možností příkazového řádku. Existují dva hlavní typy možností:





  • Formátování, které definuje, jak Git zobrazuje každé potvrzení.
  • Filtrování, které definuje, které potvrdí git log zahrnuje.

Kromě voleb příkazového řádku git log přijímá argumenty, které určují soubory, potvrzení, větve nebo jiné typy odkazů. Ty aplikují další filtrování.

Formátování výstupu protokolu Git

Jednou z nejjednodušších úprav je --online možnost, která produkuje velmi krátký výstup:

git log --oneline

Každý řádek v protokolu nyní obsahuje pouze zkrácený hash potvrzení a předmět zprávy o potvrzení. Toto je skvělý způsob, jak získat přehled o nedávných závazcích k projektu:

Bohužel, bez jiného kontextu, tyto informace nejsou vždy tak užitečné. Může vám to poskytnout nejasný pocit z projektu, ale chybí mu data a další užitečné informace o autorech a souborech.

Zobrazení grafu větve

The --graf Možnost umožňuje zobrazit vztahy mezi pobočkami. Je to velmi základní, ale může to pomoci rozmotat složitou historii.

git log --oneline --graph

Příbuzný: Jak vytvořit novou pobočku v Gitu

Přizpůsobený hezký výstup

Složitějšího formátování dosáhnete jeho podrobným zadáním pomocí --pěkný volba. Syntaxe jde od velmi jednoduchých po mnohem složitější, takže úplné podrobnosti najdete v příručce .

mám rozdělit svůj pevný disk na Windows 10
git log --pretty=short

Je v podstatě stejný jako git log bez data nebo celé zprávy:

git log --pretty=oneline

Je ekvivalentní git log --oneline .

git log --pretty=fuller

Obsahuje spoustu detailů. Dokonce odděluje autora a pachatele, kteří teoreticky mohou být různí lidé:

S formát: variantu, můžete zadat řetězec obsahující jakýkoli požadovaný obsah, včetně zástupných symbolů, které jsou nahrazeny různými daty. Zde je několik příkladů zástupných symbolů:

  • %H spáchat hash
  • %h zkrácený hash závazku
  • %na datum autora
  • %S datum autora, příbuzný
  • %s spáchat předmět zprávy
  • % b zavázat tělo zprávy
  • %p zkrácené hashe rodičů

Do výstupu můžete přidat pevné znaky a obarvit ho. Tento příklad také ukazuje variantu formátu data:

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

Datum je ohraničeno závorkami. Ať už zvolíte jakékoli formátování, pokud chcete, aby byl výstup užitečný v kanálu nebo pro jiné formy zpracování textu, měli byste zvážit, jak vymezit každou část výstupu.

Zobrazení rozdílů v protokolu

Důležitým detailem při pohledu na historii úložiště jsou samotné rozdíly. Konec konců představují to, co se ve skutečnosti změnilo v kódu! Pro začátek můžete získat souhrn změn vedle každého potvrzení pomocí -krátký stav :

git log --shortstat

Tím se přidá řádek jako:

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

Na konec každého potvrzení. Tento druh shrnutí se často zobrazuje - například na stránkách na GitHubu - a je to užitečný způsob, jak rychle posoudit rozsah konkrétního potvrzení. Chcete -li získat podrobnější informace, můžete zahrnout úplný výstup opravy (rozdíly) pomocí -p vlajka:

git log -p

Filtrování výstupu protokolu Git

Bez ohledu na formátování, které použijete, uvidíte stále kompletní protokol všech potvrzení v aktuální větvi. Přestože je Git rozděluje na stránky, stále to může být hodně výstupu. Následující možnosti vám umožňují přizpůsobit, které potvrzení protokol obsahuje.

Omezení částkou

Pokud chcete pouze oříznout výsledky tak, aby zobrazovaly několik posledních potvrzení, použijte -[číslo] syntax:

git log -2

Omezení podle data

Chcete -li omezit sadu potvrzení na dané časové období, použijte --od té doby ( --po ) a --dokud ( --před ) možnosti. Každý z nich má datum ve formátu ISO 8601. Můžete použít buď --od té doby nebo --dokud samostatně nebo obojí dohromady, aby určily rozsah. Možnosti --po a --před jsou synonyma.

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

Omezení podle souboru

Protokol Git se může zaměřit na konkrétní soubor, nikoli na každý soubor ve vašem úložišti. To je skvělé, když vám pomůže zjistit, jak se konkrétní soubor v průběhu času měnil. Jednoduše připojte název souboru na konec příkazu git:

git log filename

Uvidíte pouze ty závazky, které ovlivnily název souboru .

Rozdíly mezi pobočkami

Při prohlížení protokolu pobočky můžete mít některé jedinečné požadavky. Například než abyste viděli celou historii, možná budete chtít jen vidět, co se v dané konkrétní větvi změnilo. Protokol Git může pomoci prostřednictvím ref1..ref2 syntax. Můžete použít tři mírně odlišné přístupy:

  1. Zobrazit revize, které jsou v hlavní, ale ne větvi: | _+_ |
  2. Zobrazit revize, které jsou ve větvi, ale ne hlavní: | _+_ |
  3. Zobrazit revize, které existují pouze ve větvi nebo main: | _+_ |

Rozdíly mezi dvěma značkami

Stejně jako si můžete prohlížet historii mezi pobočkami pomocí ref1..ref2 syntaxe, můžete také stejným způsobem zobrazit historii mezi značkami. Koneckonců, značky i větve jsou typy odkazů.

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

Pokud připravujete poznámky k vydání pro větší projekt, git shortlog by měl být vaším prvním přístavem. Vytvoří seznam autorů, kteří mají vedle sebe odevzdané předměty. Můžete mu předat referenční rozsah a omezit historii podobným způsobem jako git log:

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

The git zobrazit příkaz je ještě univerzálnější než git log . Může pracovat se značkami a jinými typy objektů git mimo historii potvrzení. Sdílí mnoho možností s git log , ale budete to opravdu potřebovat, pouze pokud se budete muset hlouběji věnovat detailům nižší úrovně.

Zkontrolujte minulost pomocí protokolu Git

Protokol Git je složitý příkaz, ale z jeho nejzákladnějších možností můžete hodně využít. Procházení historie úložiště je skvělý způsob, jak porozumět tomu, jak často ke změnám dochází a kolik lidí je dělá. Jakmile dobře porozumíte historii projektu, budete mít skvělou příležitost k tomu přispět sami.

jak povolit aero ve Windows 10
Podíl Podíl tweet E-mailem Připojte se k trendu sociálního kódování a přispějte do repozitářů GitHub

Chcete procvičit kódovací svaly a pomoci open source projektům? Zde je návod, jak přispět na GitHub.

Číst dále
Související témata
  • Programování
  • GitHub
  • Tipy pro kódování
O autorovi Bobby Jack(58 článků zveřejněno)

Bobby je technologický nadšenec, který pracoval jako vývojář softwaru po téměř dvě desetiletí. Je zapálený pro hraní her, pracuje jako editor recenzí časopisu Switch Player Magazine a je ponořen do všech aspektů online publikování a webového vývoje.

Více od Bobbyho Jacka

Přihlaste se k odběru našeho zpravodaje

Připojte se k našemu zpravodaji a získejte technické tipy, recenze, bezplatné elektronické knihy a exkluzivní nabídky!

Kliknutím sem se přihlásíte k odběru