Co się stane s dřevěným nábytkem na lesklé podlaze a jak to sladit

Z Mazovia

Typické chyby se opakují: čištění horkou vodou, která může uvolnit kámen; tření šperku o oblečení, když ho odkládáte na noční stolek; odkládání na okraj umyvadla, odkud padá do odpadu. Prsteny nenechávejte volně v kapse nebo v misce u klíčů – poškrábou se navzájem. Na cestách používejte malý látkový váček, ne plastový sáček, ve kterém se drží vlhkost. Jednou za rok zajděte k odborníkovi na kontrolu upevnění kamenů a případné přeleštění; mikroskopické vady se tak podchytí dřív, než se kámen uvolní.

Moderní podlaha bývá hladká, lesklá a často v chladném odstínu – šedá, bílá, betonová nebo s výraznou kresbou. Dřevěný nábytek na ní může působit jako cizí prvek, pokud se nepotkají v teplotě odstínu a v míře lesku. Nejde o to vybírat nábytek přesně podle podlahy. Jde o to najít jeden spojovací bod, který drží celek pohromadě.

Výška sedu a opěrky rozhoduje víc než bar

Merge commity vznikají ve chvíli, kdy do sebe sloučíte dvě větve a Git nemůže provést fast-forward. V týmu, kde se často integruje, se jich rychle nahromadí stovky a historie se stane nečitelnou. Řešením je rebase, tedy přenesení commitů na nový základ. Místo mergování větve feature do main uděláte git rebase main na větvi feature a pak git merge --ff-only feature na main. Výsledkem je lineární historie bez zbytečných merge uzlů.

Praktický postup v týmu vypadá takto. Na main pravidelně pouštíte git pull --rebase, čímž se vyhnete zbytečným merge commitům při aktualizaci. Na feature větvi děláte malé, logické commity. Před otevřením pull requestu spustíte git fetch origin a git rebase origin/main. Konflikty řešíte průběžně, commit po commitu, ne najednou na konci. Pokud je konfliktů moc, použijete git rebase --abort a raději větev rozdělíte na menší části.

Než rebase zavedete plošně, domluvte se na dvou věcech: kdo smí přepisovat historii a jak se řeší konflikty. Nástroje jako git config --global pull.rebase true nebo git config --global rebase.autoStash true práci zjednoduší, ale nenahradí dohodu. Vyzkoušejte to nejdřív na malé větvi a sledujte, jestli vám lineární historie pomáhá, nebo naopak mate. Bez merge commitů se dá pracovat pohodlně, jen to chce disciplínu a vědomí, že každý přepis historie je nevratný vůči ostatním.

Nejčastější chyby jsou stále stejné: málo vyždímané brambory, příliš mnoho mouky, tlustá placka, studený tuk a skladování na papírové utěrce. Když tyto čtyři věci ohlídáte, dostanete bramborák, který je křupavý po celé ploše, drží pohromadě a na talíři nezanechá mastnou louži.

Lineární historie má i nevýhody. Ztrácíte informaci o tom, kdy byla větev skutečně dokončena a jaké změny patřily k sobě. Proto je vhodné do squashe nebo merge commitu psát srozumitelný popis. Některé týmy proto používají squash merge, kdy se celá větev sloučí do jednoho commitu. To je kompromis: historie je čistá, ale původní commity zmizí. Pokud potřebujete dohledatelnost, zvolte rebase s merge commitem pouze u vydání.

Počítejte s tím, že predátor se vrací na místo, kde jednou uspěl. Pokud přijdete o slepici, nečekejte, že to byla náhoda. Zkontrolujte celý obvod, opravte každou podezřelou mezeru a teprve potom pořizujte další kusy. Hejno, které ztratí několik slepic během krátké doby, se jinak rychle rozpadne a zbylé kusy přestanou nést. Klid a bezpečí v hejně ovlivňuje snášku víc než krmivo.

Typická chyba je rebase přes více commitů, které řeší různé věci. Vznikne zmatek a při konfliktu nevíte, co vlastně opravujete. Další častá chyba je force push bez --force-with-lease. Tento přepínač ověří, že na remote nemá někdo jiný novější commity, a zabrání přepsání cizí práce. Bez něj si můžete smazat kolegův commit a strávit hodiny hledáním v reflogu.

Rebase není magie, chce pravidla První pravidlo zní: nikdy nerebasujte commity, které už někdo jiný stáhl. Přepsání historie na sdílené větvi způsobí kolegům konflikty, které sami nevyřeší. Rebase používejte výhradně na svých lokálních větvích, případně na větvi, kterou sdílíte s jedním člověkem po domluvě. Druhé pravidlo: před rebasem si udělejte záložní větev, například git branch backup-feature. Když se rebase zvrtne, vrátíte se pomocí git reset --hard backup-feature a zkusíte to znovu.