5 pravidel, jak udržet historii Git bez merge commitů
Pátá chyba je ignorovat svislý prostor. Nad dveřmi, na boku linky nebo na boční stěně lze připevnit lišty s háčky na nářadí, prkénko nebo utěrky. Magnetická lišta na nože ušetří místo v zásuvce. Šestá chyba je nechat na zemi kbelík a mop. Ty patří na zeď nebo do úzké výsuvné skříně. Podlaha musí zůstat volná, jinak se v kuchyni nedá pořádně stát.
Na co si dát pozor, aby přesnídávka vydržela a neublíži
Posledním velkým posunem je pravidlo o hře rukou. Definice se zpřesnila: nestačí, že míč trefí ruku. Rozhoduje úmysl, zvětšení objemu těla a přirozená pozice. Pro obránce to znamená držet ruce u těla, zejména ve vápně. Pro útočníky naopak platí, že hledají kontakt s rukou soupeře. Typická chyba je mávat rukama při obranném skluzu. Sudí to dnes píská častěji než dřív, i když míč letí mimo branku.
Třetí věc je práce s více commity v jedné větvi. Než ji odešlete k revizi, ukliďte ji interaktivním rebase: git rebase -i origin/main. V editoru můžete sloučit (squash), přeřadit nebo upravit zprávy. Pozor na přepisování commitů, které už někdo jiný stáhl a postavil na nich svou práci. Pokud větev sdílíte, raději ji nechte být a pouze přidejte další opravný commit. Jinak vzniknou konflikty, které bolí víc než jeden merge commit.
Sedmá chyba je špatné světlo. Panelákové kuchyně mají často jen jedno centrální světlo, které vrhá stín na pracovní desku. Přidej pod horní skříňky LED pásek nebo bodovku, která svítí přímo na desku. Světlo nad dřezem a sporákem není luxus, ale podmínka, abys viděl, co krájíš. Bez něj děláš chyby a kuchyně působí ještě menší.
Prvním zlomem bylo zavedení červené karty za hrubou hru. Do té doby se fauly řešily domluvou a žlutou kartou. Rozhodčí, který chtěl vylučovat, čelil tlaku tribun i hráčů. Dnes je vyloučení standardní nástroj. Praktický důsledek: tým v deseti musí okamžitě změnit rozestavení, nejčastěji na 4-4-1. Typická chyba je, že mužstvo jen stáhne jednoho útočníka a nechá děrovou zálohu. Lepší je stáhnout křídlo do středu a hrát na brejky.
Ofsajd: od pasivního postavení k aktivnímu zapojení Ofsajdové pravidlo prošlo největší proměnou vnímání. Dřív stačilo být za obranou a rozhodčí pískal. Dnes se posuzuje, zda hráč skutečně zasáhl do hry, získal výhodu nebo ovlivnil soupeře. Pro obránce to znamená: nemůžete spoléhat jen na mávnutí praporku. Musíte hrát do konce, dokud nezazní hvizd. Pro útočníky platí opak: nestačí se schovat za obránce, musíte se aktivně zapojit, jinak o gól přijdete. Častá chyba je, že hráč zůstane stát a čeká na verdikt, místo aby dorazil míč do sítě.
Čtvrté pravidlo se týká ochrany hlavní větve. V nastavení repozitáře zapněte povinný fast-forward nebo lineární historii a zakažte přímý push. Tým tak nemůže omylem vytvořit merge commit na main. Zároveň nastavte, že větev musí být před sloučením rebasovaná. Tím se problém neřeší až při kontrole, ale už při pokusu o odeslání.
Velikost je první věc, kterou většina lidí pokazí. Lezecké boty mají být těsné, ale ne tak, aby ti po pěti minutách brněly prsty. Zkoušej je odpoledne nebo večer, kdy má noha přirozeně větší objem. Pata musí sedět napevno, bez vůle nahoru a dolů. Špička se má lehce dotýkat konce, prsty mohou být mírně pokrčené. Pokud při stání na malé hraně cítíš, že se noha posouvá, boty jsou velké. Pokud nemůžeš stát vůbec, jsou malé.
Rebase místo merge při přijímání změn Základní návyk je rebasovat svou práci na aktuální hlavní větev, ne ji do ní vlévat meržem. Před odesláním větve k revizi spusťte git fetch origin a pak git rebase origin/main. Pokud došlo ke konfliktu, Git vás zastaví, vy jej vyřešíte, přidáte soubory přes git add a pokračujete git rebase --continue. Tím se vaše commity přepíšou na nový základ a výsledná historie je lineární. Po úspěšném rebase je nutné větev nahrát vynuceně, ale bezpečně: git push --force-with-lease. Nikdy nepoužívejte prostý --force, jinak přepíšete cizí práci, kterou jste ještě neviděli.
Druhé pravidlo se týká sloučení hotové větve do hlavní. I zde lze fast-forward nebo rebase. Pokud je vaše větev rebasovaná na aktuální main, stačí v hlavní větvi spustit git merge --ff-only vase-vetev. Když to selže, znamená to, že main má nové commity a vy musíte rebase zopakovat. Tento příkaz je užitečný jako pojistka: buď projde čistě, nebo vás donutí větev nejdřív aktualizovat. Tím zmizí merge commity i z historie integrace.
Páté pravidlo je o komunikaci a nástrojích. Dohodněte se, že každý před rebase větve zkontroluje, zda na ní někdo nepracuje. Používejte git log --oneline --graph --all pro rychlý přehled a git reflog, když se něco pokazí. Reflog vás vrátí i po nechtěném resetu. Bez dohody v týmu budou i ta nejlepší pravidla k ničemu, protože jeden neukázněný push zničí lineární historii všem.