5 pravidel, jak udržet historii commitů bez merge commitů

提供:ワンルーム投資 Wiki
ナビゲーションに移動 検索に移動

Nejčastější chybou je podcenění hran a spoléhání na to, že „to vydrží". Druhou je balení za vlhka nebo na vlhké podlaze – vlhkost se dostane pod fólii a sklo zakalí. Třetí chybou je přeprava naplocho v kufru osobního auta, kde deska leží na tvrdé podlaze bez prokladu. Po doručení nábytek ihned vybalte, otřete suchým hadrem a zkontrolujte hrany proti dennímu světlu. Případný odštěp najdete dřív, než ho zhoršíte montáží.

Mnoho začátečníků fotí jen v noci, ale Měsíc v úplňku je nejméně zajímavý. Slunce svítí přímo na povrch, nevznikají žádné stíny a reliéf je plochý. Nejlepší detaily získáte během čtvrti nebo krátce před a po ní, kdy jsou krátery vrženy do ostrého stínu. Ještě lepší je fotografovat za soumraku nebo dokonce odpoledne, kdy je Měsíc na obloze, ale obloha není černá. Kontrast mezi Měsícem a pozadím je menší, takže se lépe vyrovnáte s dynamickým rozsahem scény. Navíc můžete použít kratší časy a nižší ISO.

Nábytek na míru je lákavý, ale u nízkého podkroví platí, že čím méně pevných vestaveb, tím lépe. Pevná skříň od podlahy ke šikmině se nedá přestěhovat a často se do ní dostane jen to, co tam zůstane navždy. Mobilní úložné boxy, zásuvkové kontejnery a skládací stolky se přizpůsobí výšce i budoucím potřebám. Ať už zvolíte cokoli, vždycky si nejdřív stoupněte, sedněte a lehněte na místo, kam nábytek plánujete. Tělo odhalí problémy, které plánek neukáže.

Každý, kdo někdy strávil dvě hodiny hledáním chybějící čárky nebo překlepu v názvu proměnné, ví, že ladění není jen o znalosti debuggeru. Většina času se ztrácí v kódu, který je špatně čitelný nebo nedostatečně předvídatelný. Následujících pět návyků nevzniklo v žádné metodice, ale z opakovaných situací, kdy se stejná chyba vracela znovu a znovu. Jejich zavedení není otázkou talentu, ale rozhodnutí psát tak, aby se v kódu dalo orientovat i po týdnu.

Před samotným balením nábytek rozeberte na jednotlivé díly. Demontujte police, dvířka, úchytky a kování. Šrouby, kolíky a spojovací materiál vložte do uzavíratelného sáčku a ten přelepte páskou přímo na jeden z dílů – volně ložené součástky se v krabici ztratí nebo propíchnou výplň. Kovové části obalte papírem, aby při tření nepoškrábaly sklo. Skleněné desky nikdy nenechávejte spojené s kovovým rámem, pokud to konstrukce dovolí.

Dodržováním těchto pěti pravidel se historie zploští, code review bude rychlejší a git log přestane připomínat bludiště. Nejde o dogma — někdy je merge commit užitečný, třeba při slučování dlouho běžící větve. Ale v běžném vývoji malého týmu je lineární historie přehlednější a snadněji se v ní hledá, kdo co změnil a proč.

Rebase místo merge při aktualizaci větve Když pracuješ na feature větvi a hlavní větev se mezitím posunula, použij git rebase main místo git merge main. Tím se tvé commity přehrají na aktuální špičku hlavní větve a nevznikne žádný merge commit. Před rebase si vždy ověř, že nemáš rozdělané změny: git status musí být čistý, jinak si je nejdřív ulož nebo stashni. Pokud při rebase narazíš na konflikt, vyřeš ho v souboru, přidej přes git add a pokračuj git rebase --continue. Nikdy nepoužívej rebase na větvi, kterou už někdo jiný stáhl k sobě — přepíšeš tím jeho historii.

Druhé pravidlo se týká sloučení feature větve do hlavní. Místo git merge feature použij git merge --ff-only feature. Tento přepínač povolí pouze fast-forward, tedy posun ukazatele bez vytvoření merge commitu. Pokud fast-forward není možný, znamená to, že feature větev není založená na aktuální špičce main. V takovém případě ji nejdřív zrebasuj: přepni se na feature, spusť git rebase main, přepni se zpět na main a zkus git merge --ff-only feature znovu. Tím udržíš lineární historii a zároveň odhalíš, že někdo zapomněl rebasovat.

Častou chybou je rebase větve, kterou už mají ostatní. Pokud někdo z týmu na tvé větvi postavil další práci a ty ji přepíšeš, jeho commity se ztratí nebo vznikne duplikace. Pravidlo zní: rebasuj pouze to, co jsi ještě neposlal do sdíleného repozitáře, případně to, co jsi poslal, ale nikdo jiný na tom nepracuje. U sdílených větví používej merge, i když to znamená občasný merge commit. Výjimkou je větev, kterou celý tým používá jen jako základ pro pull requesty — tam je rebase bezpečná, pokud se na ní nikdo nezakládá.

Merge commity vznikají ve chvíli, kdy tým sloučí dvě větve a Git vytvoří nový commit se dvěma rodiči. V malém týmu to může být přijatelné, ale při častých integracích se historie změní v nepřehlednou pavučinu. Řešením je rebase a správně nastavený pracovní postup. Následujících pět pravidel pomůže udržet lineární historii bez zbytečných sloučení.