Jump to content

Merge commit do dějin nepatří: Jak zatočit s nepřehlednou historií týmu

From Babylon SIGNALIS Wiki

Pár pravidel, která zabrání katastrofě Rebase funguje skvěle, dokud pracujete na větvi, kterou používáte sami. Jakmile jste svou větev poslali do sdíleného repozitáře a ostatní z ní odebírají, přepisování historie se stává problémem. Kolega, který si váš poslední commit stáhl, by po vašem rebase dostal konflikty při každém merge či pull. Proto platí základní pravidlo: nikdy nerabaseujte commity, které už někdo jiný použil. Pokud pracujete na feature větvi, kterou sdílíte s kolegy, komunikujte a domluvte se na strategii — ideálně používejte rebase jen pro slučování na main.

Platba složenek patří k činnostem, které většina z nás odkládá, dokud to není nutné. Jakmile ale přijde den splatnosti, stojíte před rozhodnutím: zajít na poštu nebo to vyřešit z domova? Rychlost není jen o tom, kolik času strávíte samotným úkonem. Zahrnuje i cestu, čekání ve frontě a případné chyby, které vás donutí celý proces opakovat. Podívejme se na obě možnosti bez zbytečných iluzí.

Třetí hra je zaměřená na rovnováhu a tichou koordinaci. Děti se postaví do kruhu a chytí se za ruce. Uprostřed stojí jeden dobrovolník, který má zavázané oči šátkem. Jeho úkolem je uhodnout, kdo z kruhu právě vydal zvuk — může to být zatleskání, zakašlání nebo krátké slovo. Ostatní se nesmí smát ani napovídat. Když hráč uhodne, vymění si místo s tím, kdo zvuk vydal. Tato hra vypadá jednoduše, ale děti učí vnímat detaily a potlačovat vlastní impulzivitu. Častým problémem je, že dobrovolník sundá šátek dřív, než se stihne soustředit. Domluvte se předem, že šátek smí sundat až po třech pokusech.

Na závěr si uvědomte, že koutek nemusí být velký. Dokonce i úzký prostor mezi skříní a postelí, do kterého se vejde úzké křeslo a malá polička, může fungovat lépe než velký kout, který ale neposkytuje soukromí. Vyzkoušejte si v něm čtení alespoň dvacet minut denně po dobu jednoho týdne – pokud se vám nechce vstávat a těšíte se na další večer, je to správně. Když vás naopak něco ruší, upravte to hned, protože zlozvyk se rychle usadí.

Největší chyba, kterou vídám, je příliš dlouhé hole při sestupu. Lidé s nimi jdou jako s hůlkami, špičky se jim vláčejí za tělem, a místo aby odlehčily kolenům, nutí je brzdit každý krok. Druhým extrémem je zapichování holí před tělo do ostrého úhlu, což klouže po povrchu a hrozí pád. Správná technika: hole nasaďte vždy na úroveň chodidla, které je v danou chvíli vpředu, a tlak veďte svisle dolů. Pásky kolem zápěstí pak drží rukojeť tam, kde má být, i když povolíte stisk.

Uspořádání koutku podléhá i akustice. Pokud máte ložnici u rušné ulice, pomůže těžký závěs nebo knihovna umístěná ke stěně, která tlumí zvuk. Mobilní telefon si dejte do jiné místnosti nebo alespoň do režimu letadlo, protože i tichá notifikace dokáže přerušit koncentraci. Jestli čtete pravidelně, pořiďte si malý stolek či polici, kam odložíte knihu, brýle a sklenici vody – nemusíte pak nic hledat po bytě a koutek zůstane uklizený.

Typickou chybou, kterou týmy dělají, je kombinace rebase a squashe až ve chvíli, kdy je větev připravená k merge. V tu chvíli se ukáže, že máte deset commitů „oprava", „oprava 2", „fix" a podobně. Pracujte tak, abyste takové commity nevytvářeli. Když objevíte chybu v posledním commitu, opravte ji a pomocí git commit --amend ji zapracujte do původního zápisu. Tím se vyhnete řetězci drobných oprav. Pokud už takové commity vznikly, vyřešíte je squeeze před odesláním do main – ale to je řešení následků, ne příčiny.

Když vyrážíte do kopců s trekovými holemi, možná vás napadne, že stačí je vzít do ruky a jít. Omyl. Špatné držení a nesprávná délka holí dokážou udělat víc škody než užitku — přetížíte zápěstí, ramena a místo odlehčení kolen si zaděláte na bolest. Základ je přitom jednoduchý: hole musí být prodloužením vašich paží, ne berle, o které se opíráte celou vahou.

Dalším častým problémem jsou interaktivní rebase. Příkaz git rebase -i HEAD~n vám umožní upravit, přeskládat nebo sloučit posledních n commitů. To se hodí, když chcete spojit drobné opravy do jednoho logického celku, nebo když objevíte překlep v předposledním commitu. Pozor ale na to, že interaktivní rebase otevírá editor, kde se špatně orientuje začátečník. Pravidlo zní: měňte maximálně pořadí a slučujte commity, které tematicky patří k sobě. Nekomprimujte vše do jednoho obra, jinak ztratíte schopnost zpětně vysledovat, proč se co dělalo.

Poslední doporučení se týká nástrojů, které práci usnadňují. Většina Git klientů (např. příkazová řádka i vizuální prostředí) nabízí možnost „rebase onto" nebo „pull with rebase". Nastavte si v konfiguraci pull.rebase true, aby i běžné git pull automaticky rebaseoval, místo aby vytvářel merge commity. Tato drobnost zajistí, že vaše lokální historie zůstane lineární i při každodenní spolupráci. A nezapomeňte, že pravý smysl není jen mít pěkný graf, ale umět rychle najít, co rozbilo build. Lineární historie to umožňuje bez zbytečného listování v křivolakých větvích.