Scott Chacon: Pro Git – česky o Gitu

O Gitu se v poslední době poměrně intenzivně hovoří. Git je představitel distribuovaných verzovacích systémů (DVCS). DVCS jsou používány zejména ve světě svobodného a open source softwaru. V knize od Scotta Chacona se dozvíme vše potřebné, co pro práci s tímto verzovacím systémem potřebujeme.

Zatímco o některých technologiích vycházejí v češtině knihy až v době, kdy jsou tyto technologie již běžmě používané, nebo dokonce za zenitem, a mohou sloužit přinejlepším jako kompendia nebo příručky, do nichž nakoukneme, když si na něco nemůžeme vzpomenout, je Git v této oblasti světlou výjimkou.

Kniha Scotta Chacona s názvem „Pro Git“ vyšla nejprve jako volně šiřitelný text. V srpnu 2009 jej vydalo v papírové podobě nakladatelství Apress. Jejího českého překladu jsme se dočkali díky sdružení CZ.NIC na konci prosince 2009, tedy s minimálním zpožděním. Máme tak jedinečnou možnost přečíst si knihu o vývojářském nástroji v době, kdy je ještě aktuální (jak kniha, tak nástroj).

Český překlad knihy, který vyšel péčí již zmíněného sdružení CZ.NIC, je k dispozici ke stažení např. v naší knihovně (Pro Git). Pokud máte raději klasické papírové knihy, můžete si ji objednat za 289 Kč. Knihu jste mohli získat i v naší minisoutěži u článků Karla Minaříka Pět důvodů, proč zvolit Git.

Já osobně jsem velkým milovníkem knih. Rád si s knihou zalezu a čtu – nerozptylují mě maily, IM ani prokrastinace, jako při čtení PDF na počítači. I když jsem věděl o tom, že jsou „o Gitu“ informace na webu a že je dostupná kniha jako PDF, nenalezl jsem nikdy čas na to, abych si je pořádně pročetl. S papírovou knihou tomu bylo jinak: Za dva večery jsem měl přečteno, spousta věcí, co mi stále nebylo jasných (tagování a branchování například) do sebe začalo zapadat a celé to dostalo řád. Ale popořádku.

Git

Psát o Gitu na Zdrojáku je dnes už nošením sov do Athén, takže jen ve stručnosti – Git je decentralizovaný systém pro správu verzí, který klade důraz především na lokální práci a usnadňuje následné začleňování změn do hlavní větve vývoje, přičemž nijak neurčuje, jak přesně to má být uděláno, kde musí být společný server či jaké mají být role. Vychází tak vstříc zejména vývojářům OSS, kteří jsou často na různých místech po celém světě a pracují víceméně autonomně.

A přesně těmito informacemi začíná kniha Pro Git. V první kapitole je ještě stručně vysvětleno, jak Git nahlíží na verzování souborů, je popsán rozdíl mezi commitem a stagingem a popsána instalace Gitu. Vše je doprovázeno názornými obrázky a pro člověka, který se setkal alespoň s jedním VCS (nebo někdy vyvíjel alespoň s jedním dalším člověkem), jsou popisované myšlenky snadno pochopitelné.

Základy práce

Základem Gitu je, ať si kdo chce co chce říká, práce z konzole. I když existují nadstavby a GUI, je pro programátora, který někdy používal příkazovou řádku, Git snadno ovladatelný právě tímto způsobem. Git nemá nějak náročnou syntaxi příkazů a voleb, a pokud jste někdy viděli nějaký linuxový shell, bude vám polovina z nich připadat samozřejmá.

Ve druhé kapitole knihy jsou popsány základní operace se soubory. Dozvíme se z ní, jak přidat soubor do stage, jak odeslat změny, jak soubor smazat, jak si vypsat historii, jak založit lokální repozitář nebo jak klonovat vzdálený – tedy naprosto základní operace. Po druhé kapitole může čtenář začít používat Git jako sofistikovanější obdobu nástroje známého pod názvem „jednou za čas si zkopíruju práci do jiného adresáře“.

Pozitivní věcí na stylu Scotta Chacona je, že se zbytečně nevykecává u samozřejmostí, takže například přesouvání souborů, kde v podstatě není o čem vyprávět, projde ve třech odstavcích, a zastaví se až u věcí, které jsou nějak zajímavé, neobvyklé, zvláštní či prostě jen hodné trošku podrobnějšího popisu.

Po celou dobu je výklad ilustrován na ukázkovém příkladu vývoje nějakého software. Příkazy tak nevisí „ve vzduchu“, ale jsou hned demonstrovány prakticky, včetně ukázky toho, co Git vypíše a vysvětlení co to znamená. Knížku si tedy můžete číst opravdu např. na dovolené, kdy nesedíte u počítače, a přitom nemáte u četby dojem, že na vás autor hrne jen nějaké teoretické informace, které za chvíli zapomenete, pokud si je okamžitě nevyzkoušíte.

Já jsem s Gitem experimentoval už před čtením téhle knihy, na něco jsem si přišel sám, s něčím mi poradil Karel Minařík, takže jsem už jakési povědomí o stylu práce měl. Přesto mi druhá kapitola pomohla některé poznatky dát do souvislostí a „ukotvit“ – po přečtení začalo vše dávat smysl a logicky do sebe zapadat. Pustil jsem se tedy s nadšením do třetí kapitoly.

Větve

Větvení a tagování mi připadalo vždy jako „vyšší dívčí“, takže jsem se třetí kapitoly, která je právě větvím věnována, trochu obával a zarazilo mě, že není rozsahem o moc větší než druhá kapitola. Bál jsem se, že kniha sklouzne ke klasickému nešvaru některých odborných knih, které zevrubně popisují základy a s tím, jak se téma stává složitější, je i výklad stručnější… naštěstí se to nestalo.

V Pro Gitu je větvení popsáno tak samozřejmě jako třeba výše zmíněné klonování souborů. Tedy na názorném příkladu, včetně vysvětlení toho, co se má dít a proč, a jak to vlastně Git v pozadí dělá. To se nakonec ukázalo, alespoň u mne, jako ten rozhodující detail, který mi pomohl pochopit princip větvení, rebase a merge. Autor je si zjevně vědom starého přísloví, které říká, že „dobrý obrázek vydá za tisíc slov“, a důsledně se jej drží.

První tři kapitoly lze považovat za představení nejdůležitějších úkonů, které lze s Gitem dělat. S tím, co se naučíte v prvních třech kapitolách, si při běžné práci vystačíte v 90% případů. Ale pokud chcete s Gitem pracovat efektivně, potřebujete ještě další vědomosti, které přináší zbytek knihy. Kdybychom měli zvolit příměr s učebnicí programování, tak: V prvních třech kapitolách se naučíte příkazy a syntaxi, ale potřebujete znát ještě funkce, knihovny, překladače a styl práce…

Git na serveru

Čtvrtá kapitola se věnuje problematice instalace Gitu na server, tedy nespadá až tak do každodenní práce s Gitem a většina uživatelů se s něčím takovým asi ani nesetká. Přesto je dobré si tuto kapitolu alespoň přečíst, protože kromě čistě technických informací získáte přehled i o podporovaných protokolech, o nástrojích GitWeb, Gitosis či Gitolite, no a v neposlední řadě o hostování projektů s Gitem (ano, nechybí zde popis GitHubu ani konverze projektu ze SVN).

Po čtvrté kapitole tedy umíte používat Git a máte k dispozici vzdálený repozitář… Můžete se pustit směle do vývoje. Nebo ne?

Git je distribuovaný

Pátá kapitola popisuje distribuovaný charakter Gitu, tedy právě ten rys, který je poměrně nový a nezvyklý a s jehož pochopením mají někteří uživatelé největší potíže. Totiž s tím, že Git nemá jaksi z podstaty určeno, kde je hlavní větev a kdo se o ni stará. Tyto věci je potřeba si s ostatními vývojáři dohodnout. Existují pouze určitá ověřená pravidla, doporučené postupy a vyzkoušené rozdělení rolí – a právě to je náplní páté kapitoly.

Osobně považuju právě pátou kapitolu za snad informačně nejcennější – syntaxe příkazů a postup nastavení se dá přinejhorším vždy vyčíst z manuálů, ale doporučené postupy práce člověk musí lovit z nejrůznějších diskusí a blogů. V Pro Gitu jsou všechna doporučení na jednom místě, a jsou i vysvětlená – co je potřeba řešit, jak to lze řešit a proč to tak řešit. Bez těchto informací můžete Git používat, samozřejmě, pro sebe, ale pokud se bez nich pustíte do většího projektu, zůstanete beznadějně ztraceni, nebo (v tom lepším případě) znovuvynalezne­te kolo.

Kromě pracovních postupů a pravidel pro přispívání do projektů se pátá kapitola zabývá i správou projektů – jak integrovat příspěvky od přispěvatelů, jak aplikovat záplaty, kontrolovat provedené změny či připravovat verzi k vydání.

Drobnosti

Zbytek knihy, tedy kapitoly 6, 7 a 8, je věnováno operacím a vlastnostem, které člověk nepoužívá každý den, ale které mohou ušetřit spoustu práce, ať jde o nástroje pro odložení práce, přepisování historie či ladění v Gitu, nebo o přizpůsobení Gitu vlastním zvyklostem (ano, i na oblíbené konfigurační soubory dojde).

Celá osmá kapitola je pak věnována přechodu na Git z jiného verzovacího systému (Subversion) či koexistenci s jiným verzovacím nástrojem (např. tomu, jak je možno si svou lokální práci verzovat Gitem a přitom pracovat na projektu, který používá SVN).

Poslední kapitola, která má pořadové číslo 9, pojednává o „zákulisí Gitu“ – tedy mimo jiné o tom, co je v adresáři .git a jak to celé funguje, co se stane když uděláte ten či onen příkaz a jak to je implementováno.

Shrnutí

S odbornou IT literaturou v češtině je velký problém, protože až na výjimky se k nám dostávají knihy s několikaletým zpožděním, pokud vůbec. Některá IT témata v češtině stále pokryta nejsou (především technologické novinky, nové jazyky, frameworky, nové technologie) a pravděpodobně ani nikdy nebudou – knihy totiž morálně zastarají dřív, než se je podaří přeložit a vydat.

Z tohoto důvodu je potřeba jednoznačně ocenit počin sdružení CZ.NIC, které přineslo překlad velmi kvalitní knihy od renomovaného autora v době, kdy je téma ve světě aktuální (tedy s lehkým předstihem proti českému prostředí). Kniha je navíc dobře redakčně zpracována – nenarazil jsem na nějaké vyložené nesmysly, gramatické chyby či stylistické neobratnosti. Text plyne přirozeným tempem, styl je svěží, čtivý, neutápí se ani v rozvláčnosti, ani ve šroubovaných formulacích a kniha se tak čte „jedním dechem“. Trochu je jen škoda, že jsem v knize nenašel informaci o tom, kdo stojí za překladem.

K obsahu samotné knihy a formě výkladu nelze mít připomínek, obojí je jedním slovem perfektní. Jedinou výhradu bych měl snad k typografii – o stupeň větší písmo by se mi rozhodně četlo líp; v knize použitá velikost písma odpovídá zhruba velikosti písma používané např. v televizních programech. Okraje jsou navíc poměrně malé, takže vychází řádek příliš dlouhý a oko snadno přeskočí.

Mít tu zavedené hvězdičkování, dostal by český Pro Git maximální počet hvězdiček: Kniha je velmi dobře napsaná, dobře přeložená, výklad srozumitelný a pro cílovou skupinu, kterou jsou především vývojáři, snadno pochopitelný. Navíc přichází v době, kdy se o Gitu (a dalších DVCS) ve světě intenzivně hovoří, tudíž má určitě smysl si ji pořídit. Rozhodně nebudete mít dojem, že čtete o něčem, co je už dva roky překonané.

Začal programovat v roce 1984 s programovatelnou kalkulačkou. Pokračoval k BASICu, assembleru Z80, Forthu, Pascalu, Céčku, dalším assemblerům, před časem v PHP a teď by rád neprogramoval a radši se věnoval starým počítačům.

Věděli jste, že nám můžete zasílat zprávičky? (Jen pro přihlášené.)

Komentáře: 13

Přehled komentářů

Laethnes Souhlas
jos světlá výjimka?
Kit Používání Gitu
Ladislav Thon překlad
jos Re: překlad
shade Re: překlad
jos Re: překlad
Ladislav Thon Re: překlad
Mastodont Re: překlad
Václav Novotný Re: překlad
Ladislav Thon Re: překlad
shade Re: překlad
pepr Re: překlad
Zdroj: https://www.zdrojak.cz/?p=3165