Když chcete lineární historii: Git bez merge commitů
Prvním krokem je nastavit jasná pravidla pro všechny v domácnosti. Pes nerozlišuje mezi tím, co chce páníček a co panička. Pokud jeden povoluje na gauč a druhý ne, pes se učí, že pravidla se dají obcházet. Sepište si tři až pět základních pravidel a držte se jich. Například: pes čeká na povolení před dveřmi, nedostane jídlo, dokud si nesedne, a na procházce se netáhne. Tato jednoduchá pravidla dávají psovi jistotu a vám klid.
Rezervy nebývají v jedné velké položce, ale v součtu mnoha malých. Projděte opakující se platby a u každé si položte otázku, zda ji skutečně využíváte. Předplatné streamovacích služeb, členské poplatky, tarify s nevyužitými daty nebo pojistky, které se překrývají. Zrušení jedné položky nepřinese velkou změnu, ale pět zrušených položek už ano. Dále se zaměřte na frekvenci nákupů. Časté drobné nákupy jídla a nápojů mimo domov tvoří překvapivě velkou část rozpočtu. Nejde o to je zakázat, ale omezit jejich počet a nahradit je přípravou doma.
Začněte u světla. Obývák má obvykle okna na dvě strany, ložnice často jen jedno, a to ještě zatažené závěsem. Barva, která vypadá v obýváku teplá, může v ložnici spadnout do šeda nebo do zelena. Než koupíte cokoli velkého, vezměte vzorník odstínů ze svého obýváku a položte ho v ložnici na postel i na parapet. Podívejte se na něj ráno, v poledne a večer při umělém světle. Co se jeví jako stejné odpoledne, může být večer úplně jiné. Pokud se odstín láme, zvolte o půl kroku světlejší variantu a teprve tu berte jako výchozí.
Past, do které spadne téměř každý Největší chyba není vynechání čištění, ale přílišný tlak. Lidé si myslí, že čím silněji tlačí, tím lépe vyčistí. Opak je pravdou. Silný tlak zatlačuje vlákna pod okraj dásně, obrušuje sklovinu u kroužků a způsobuje recesi dásní. Dásně se stáhnou, obnaží krčky zubů a ty jsou pak citlivé na teplo i chlad. Správný tlak je takový, kdy se vlákna jen jemně ohýbají. Pokud kartáček po pár týdnech vypadá rozpláclý, tlačíte příliš.
Jídlo je třetí faktor, který většina lidí podcení. Tvrdé potraviny jako ořechy, mrkev nebo tvrdé pečivo mohou utrhnout drátek nebo kroužek. Lepkavé sladkosti se zachytí v ligaturách a nelze je vyčistit ani mezizubním kartáčkem. Pokud už si dáte něco sladkého, vyčistěte si zuby do deseti minut. Káva, čaj a červené víno zbarví ligatury i sklovinu kolem kroužků – vzniknou bílé skvrny, které po sundání rovnátek vypadají jako kazy. Během nošení rovnátek proto tyto nápoje omezte nebo po nich hned vypláchněte ústa vodou.
Základní pravidlo je jednoduché: lokální větev rebasujte na aktuální hlavní větev a teprve potom ji sloučte. V praxi to znamená git switch moje-vec, git fetch origin, git rebase origin/main. Pokud došlo ke konfliktu, vyřešíte ho v každém commitu zvlášť, přidáte soubory přes git add a pokračujete přes git rebase --continue. Tím se vaše commity přepíšou na nový základ a historie zůstane lineární. Následně na hlavní větvi proveďte git merge --ff-only moje-vec, což buď projde, nebo vás upozorní, že rebase nebyl dost aktuální.
Rebase přepisuje commity, proto na to myslete dopředu Každý rebase vytváří nové commity s novými hashi. Pokud už byly odeslané do sdílené větve, ostatní na nich mohou stavět a přepis jim rozbije práci. Proto rebasujte pouze to, co ještě nikdo jiný nemá. Už odeslanou větev, na které pracuje více lidí, nechte být a místo rebase použijte běžný merge. Stejně tak nikdy nerebasujte hlavní větev, kterou ostatní stahují – tím si koledujete o ztracenou práci a složité opravy.
Poslední návyk: když uděláte chybu, konejte hned. Změňte heslo, odhlaste všechna zařízení, zapněte dvoufázové ověření a zkontrolujte, jestli se z účtu něco neodeslalo. Pokud jde o peníze, kontaktujte banku okamžitě. A nahlaste zprávu platformě i lidem, kterým mohla přijít. Rychlá reakce zmenší škody víc než dokonalé zabezpečení.
Merge commity vznikají ve chvíli, kdy do sebe sloučíte dvě větve, které se od sebe vzdálily. V historii pak vidíte dva rodiče místo jednoho a při čtení logu musíte odhadovat, co se vlastně stalo. Řada týmů se proto rozhodne merge commity nedržet a používat pouze rebase nebo fast-forward. Není to univerzální pravda, ale pokud víte proč a jak, výsledek je čitelná historie, ve které se dá dohledat, který commit patří ke které změně.
Lineární historie není cíl sám o sobě. Pomáhá tam, kde potřebujete rychle číst, co se změnilo, a kde se každá změna vejde do jednoho commitu. Pokud tým pracuje na dlouhých větvích s mnoha autory, může být merge commit přehlednější a bezpečnější. Dohodněte se na pravidlech, nastavte je v nástrojích a vysvětlete je i novým lidem. Jinak se rebase a merge budou potkávat náhodně a historie bude vypadat jako dvě různé mapy slepené dohromady.