5 pravidel, jak udržet historii Git bez merge commitů
Ekokůže nejvíc trpí teplem, vlhkem a přímým sluncem. Ukládejte ji na suchém, tmavém místě s pokojovou teplotou. Nikdy ji nenechávejte v autě na přímém slunci ani u radiátoru. Pokud ji skladujete v plastovém obalu, může se uvnitř tvořit kondenzace. Lepší je prodyšný textilní pytel. Před uložením ji vždy nechte úplně uschnout, ale ne na topení.
Čtvrté pravidlo se týká dokončování feature větví. Místo merge použijte rebase a fast-forward. Tedy: git checkout feature, jak zařídit malou kuchyni git rebase main, git checkout main, git merge --ff-only feature. Výsledkem je lineární historie bez merge commitů. Některé týmy místo toho používají squash – sloučí všechny commity do jednoho. To je také čisté, ale ztrácíte dílčí historii. Rozhodněte se pro jednu strategii a držte se jí. Míchání obou přístupů vede ke zmatku.
Rebase místo merge při přijímání změn Základem je git pull --rebase místo běžného git pull. Tím se vaše lokální commity přeskládají na aktuální vzdálený stav a nevznikne žádný merge commit. Stejně tak při sloučení větve použijte git rebase main na feature větvi a teprve potom git merge --ff-only feature do main. Pokud fast-forward není možný, něco je špatně – buď větev není rebasovaná, nebo do main mezitím někdo pushnul. V takovém případě rebase zopakujte. Toto pravidlo držte u všech větví, které míří do hlavní linie.
Hřady umístěte do výšky asi 60–80 cm, dost daleko od stěn, aby se slepice nedotýkaly peří o studený beton. Silné prsty na nohou potřebují dřevo, ne kov. Pokud teploty padají hluboko pod nulu, pomůže obalení hřadů hadicí s teplou vodou jen na noc, ale nikdy nenechávejte vodu v uzavřeném prostoru bez větrání.
Poslední věc, kterou lidé podceňují, je přemístění dřeva před topnou sezónou. Týden až dva před prvním topením přeneste menší množství do suchého, větraného prostoru u kamen nebo do kůlny. Dřevo si zvykne na nižší vlhkost a při hoření nebude zbytečně spotřebovávat teplo na odpařování zbytkové vody. Nikdy ho nepřenášejte do sklepa s betonovou podlahou, kde vlhkost stoupá vzhůru. Právě tam se suché dřevo během několika dnů znovu nasákne.
Barvy rozhodují o tom, jestli stěny zmizí, nebo se přiblíží. Světlé odstíny — bílá, světle šedá, jemná béžová, bledě zelená — stěny opticky posouvají dál. Pokud chcete barevný akcent, použijte ho na jedné krátké stěně nebo na dveřích, ne na všech čtyřech. Tmavé barvy v malé předsíni fungují jen tehdy, když je prostor opravdu dobře osvětlený; jinak ho pohltí. Stejné pravidlo platí pro podlahu a nábytek: světlejší odstíny drží prostor otevřený, tmavé ho uzavírají. Nábytek volte nízký a v barvě stěn, aby splynul s pozadím.
Pozor na sdílené větve. Rebase mění historii. Pokud větev už někdo jiný stáhl a pracuje na ní, přepisování commitů mu rozbije lokální stav. Rebasujte pouze větve, které ještě nebyly pushnuté, nebo větev, na které pracujete sami. U sdílených větví se rebase nedělá. To je nejčastější chyba začínajících týmů – rebasují remote branch, úprava interiéru kterou používá celá skupina.
Merge commity vznikají ve chvíli, kdy větev sloučíte s jinou pomocí git merge. V lineární historii nemají místo. Pokud chcete čistý vývoj, musíte změnit způsob, jakým změny dostáváte do hlavní větve. Nejde o kosmetiku. Každý merge commit znamená další uzel, který komplikuje čtení historie, ztěžuje git bisect a zbytečně nafukuje repozitář. Týmy, které chtějí lineární historii, používají rebase a fast-forward merge. Následujících pět pravidel pokrývá to, co v praxi opravdu rozhoduje.
Začněte tím, že si vyberete tři až čtyři barvy, které se spolu dobře doplňují. Nepotřebujete módní teorii, stačí se podívat na věci, které už nosíte nejčastěji. Vezměte je, položte na postel a najděte, co mají společného. Možná zjistíte, že vám sedí tmavě modrá, olivová a béžová, nebo že se pořád vracíte k vínové, šedé a bílé. Tyto barvy pak berte jako základ a všechno ostatní k nim přiřazujte.
Třetí pravidlo: nastavte si pull.rebase true v konfiguraci. git config --global pull.rebase true udělá z rebase výchozí chování. Tím zmizí nejčastější zdroj merge commitů – nevědomé git pull. Zároveň zkontrolujte, že nemáte zapnuté merge.ff na hodnotě, která vynucuje merge commity. Výchozí git config merge.ff only zajistí, že merge projde jen jako fast-forward. Pokud fast-forward není možný, Git operaci odmítne a vy musíte rebasovat.
Druhé pravidlo se týká force push. Po rebase musíte na vzdálený repozitář poslat přepsanou historii pomocí git push --force-with-lease. Nikdy nepoužívejte prostý --force. --force-with-lease odmítne push, pokud někdo mezitím na vzdálenou větev zapsal. Tím zabráníte přepsání cizí práce. Toto je jediná bezpečná varianta force push. Pokud ji tým nepoužívá, dříve nebo později někdo přijde o commity.
To read more info on celý text check out the web page.