Lineární historie a merge commity: jak na čistý git log?
Většina týmů žije v představě, že merge commit je běžnou součástí práce s gitem. Opak je pravdou. Pokud chcete mít v historii jasno, kdo co změnil a proč, merge commity vám v tom aktivně brání. Vytvářejí totiž falešné větvení a log se stává nepřehlednou změť čar, ve které se špatně hledá konkrétní úprava. Cílem není zakázat větve, ale změnit způsob, jakým je začleňujete zpět.
Největší omyl je představa, že merge commit je nutný pro zachování informace o větvi. Git si pamatuje, že větve existovaly, i bez merge commitů. Pokud potřebujete vědět, kdy byla větev vytvořena, podíváte se na reflog nebo použijete grafické nástroje, které ukazují původ jednotlivých commitů. Čistý log bez merge commitů je čitelnější, snadněji se v něm dělá bisect pro hledání chyb a každý commit lze snadno revertovat samostatně, což u merge commitů často nefunguje spolehlivě.
Konflikty při rebase řešíte stejně jako při merge, ale s jedním podstatným rozdílem: řešíte je postupně, commit po commitu. To je výhoda, protože vidíte, ve kterém okamžiku ke konfliktu došlo. Často zjistíte, že problém vznikl už před mnoha commity. Stačí pak daný commit upravit pomocí edit nebo reword při interaktivním rebase. Volbu git rebase -i používejte nejen na konflikty, ale i na čištění vlastní historie před finálním začleněním.
Druhým problémem je nepravidelnost v evidenci. Pokud si výdaje zapisujete jen občas, nemáte reálný obrázek a snadno se vám stane, že některou kategorii podceníte. Vyhraďte si proto každý den pět minut na zapsání a každý týden deset minut na shrnutí. Pokud máte partnera nebo děti, zapojte je – společné sledování rozpočtu snižuje riziko, že se na nějaký výdaj zapomene, a zároveň vytváří přirozený tlak na zodpovědnost.
Typické chyby, které brání odhalení rezerv Nejčastější chybou je soustředit se na jednorázové velké výdaje, jako jsou dovolené nebo opravy auta, a přitom ignorovat pravidelné platby, které se opakují každý měsíc. Pojištění, které už dávno nepotřebujete, předplatné, které nevyužíváte, nebo tarif pro mobilní telefon s více daty, než stihnete spotřebovat, představují skryté rezervy, které se dají snadno odstranit. Zkontrolujte si proto všechny trvalé příkazy a inkasa a zrušte ty, které nejsou nutné. Ujistěte se, že víte, na co každá platba slouží, a pravidelně porovnávejte nabídky – ale pozor, nehoňte se za každou akční slevou.
Na co se zaměřit jako první? Začněte průvanem. Slepičí dýchací cesty jsou citlivé a i malá škvíra u hřadu dokáže způsobit rýmu nebo zánět. Projděte stěny zevnitř i zvenku, zkontrolujte spáry u dveří, oken a střechy. Utěsněte je silikonem, lištami nebo jiným vhodným materiálem. Nezapomeňte ale na větrání – bez přísunu čerstvého vzduchu se v kurníku sráží vlhkost, která je pro zdraví slepic stejně nebezpečná jako mráz. Ideální je ponechat malou větrací štěrbinu pod stropem nebo instalovat větrací mřížku, kterou lze regulovat. Proud vzduchu by neměl foukat přímo na hřad.
Zimní měsíce dokážou slepicím pořádně znepříjemnit život. Mráz, vlhkost a průvan patří k nejčastějším příčinám nemocí, poklesu snášky i omrzlin. Než teploty klesnou pod bod mrazu, vyplatí se věnovat kurníku důkladnou kontrolu. Nejde o žádnou velkou vědu – stačí se zaměřit na pár klíčových míst a odstranit slabiny dřív, než se projeví.
Typickou chybou je ignorovat squash. Místo deseti malých commitů s hláškami „oprava překlepu" udělejte jeden či dva logické celky. Interaktivní rebase umožní commity sloučit dohromady. Výsledná historie pak vypadá jako série vědomých rozhodnutí, ne jako deník psaný za běhu. To ocení každý, kdo bude za půl roku hledat, proč se daná funkce chová právě takto. Nezapomínejte, že historie je primárně komunikační nástroj pro budoucí vývojáře.
Základním nástrojem je rebase. Místo příkazu git merge použijte git rebase na cílovou větev. Tím přenesete své commity na špičku cílové větve, čímž vznikne lineární historie bez umělých rozdvojení. Typická chyba začátečníků je rebase provádět na veřejné větvi, kterou sdílí více lidí. To vede ke konfliktům a nutnosti force-push, což naruší práci ostatním. Rebase proto provádějte pouze na větvích, které jsou čistě vaše a nikdo jiný z nich netáhne.
Dalším krokem je izolace. Ne každý kurník potřebuje topení, ale pokud máte tenké stěny nebo chováte citlivější plemena, vyplatí se přidat izolační vrstvu. Nejjednodušší je obložit stěny zevnitř polystyrenem, ale dejte pozor, aby ho slepice nemohly zobat – zakryjte ho deskami nebo pevným papírem. Podlaha si zaslouží stejnou pozornost. Beton nebo holá země táhnou chlad, proto ji pokryjte silnou vrstvou podestýlky. Sláma, hobliny nebo suché listí by měly mít alespoň patnáct centimetrů. Čím hlubší podestýlka, tím lépe slepice izoluje od zimy, a navíc funguje jako kompost, který vytváří teplo.