Front Page › Forums › Fishing forum › Merge commity, které zbytečně zaplavují historii

Tagged: 

Viewing 0 reply threads
  • Author
    Posts
    • #17159
      evangelinesunevangelinesun
      Participant

      První chybou je koupit novou baterii, aniž by se změřil alternátor a klidový odběr. Často je baterie jen oběť, ne viník. Klidový odběr se měří ampérmetrem v sérii s odpojenou svorkou po uspání vozidla; hodnota nad zhruba 50 mA po desítkách minut znamená, že něco odebírá proud i při vypnutém autě. Dál zkontrolujte řemen alternátoru – povolený nebo lesklý řemen klouže a dobíjení kolísá. Podívejte se i na kabeláž a ukostření, protože zoxidovaný kontakt dělá stejný problém jako slabý alternátor.

      Každý tým, který pracuje s Gitem denně, dříve nebo později narazí na historii plnou merge commitů. Vypadá to neškodně, dokud se nezačneš snažit dohledat, kdy a proč se konkrétní změna dostala do větve. Lineární historie bez merge commitů není jen estetická záležitost. Zásadně zjednodušuje code review, zkracuje dobu potřebnou k nalezení regrese a výrazně snižuje riziko konfliktů při zpětném sloučení do hlavní větve.

      Nakonec pamatujte, že žádný olej není věčný. I při správné teplotě se po několika smaženích začnou hromadit spálené nečistoty. Chuť i barva kůrky se pak zhoršují. Jakmile olej získá tmavší odstín nebo nepříjemný zápach, vyměňte ho. Křupavá kůrka bez přepáleného oleje není o drahém vybavení, ale o kontrole teploty, suchém povrchu jídla a čistém tuku.

      Světlo a hluk rozhodují stejně jako nábytek. Světlo má dopadat z boku na psanou ruku, ne přímo do očí ani zezadu, aby dítěti nevrhlo stín na sešit. Pokud je v místnosti televize nebo rádio, koutek se rozpadá, i když je sebelepší. Sluchátka s tichou hudbou nejsou univerzální řešení a u mladších dětí spíš odvádějí pozornost. Lepší je domluvit v rodině krátký čas klidu, kdy se v okolí pracovního místa nemluví nahlas.

      Regály v obchodě vyrobte z proužků kartonu naolejovaných do „L” a vlepených do stran. Zboží nahraďte tím, co máte doma: prázdné kelímky od jogurtu, vyprané obaly od vajec, roličky od papírových utěrek. Ceny pište fixem na malé čtverečky a přilepte je na špejle zapíchnuté do kousku modelíny. U kuchyňky se osvědčily víčka od zavařovacích sklenic jako talíře a dřevěné vařečky místo příborů. Všechno, co se dá sundat a znovu nasadit, děti zaměstná déle než statická výzdoba.

      Pro týmy, které chtějí konzistentní výsledek, se osvědčuje nastavit výchozí chování pro pull. Místo klasického pull, který vytváří merge commit, použij rebase variantu. Tím se při aktualizaci lokální větve tvé commity přenesou na nový základ a žádný zbytečný merge nevznikne. Stejně tak je vhodné zavést pravidlo, že před vytvořením pull requestu si autor sám provede rebase na cílovou větev. Ušetří to čas recenzentům i CI systému.

      Na co si dát pozor: nechte děti spolurozhodovat o rozmístění, ale konečné slovo mějte vy, aby řešení fungovalo i za rok. Nezavěšujte police nad postel, pokud si dítě rádo hraje na posteli – může to být nebezpečné. Vyhněte se řešení, kdy jedno dítě má výhled z okna a druhé jen zeď; střídejte to nebo kompenzujte jinou výhodou. Pokud se děti perou o stejnou hračku, pomůže pravidlo, že každý má svou krabici a společná je jen ta, na které se předem dohodnou.

      Základem je rebase místo merge. Když dokončíš práci na své větvi, přepni se na ni a spusť příkaz, který přenese tvé commity na aktuální špičku cílové větve. Tím se vytvoří nové commity s novými hashi, ale obsah zůstane stejný. Před rebase si vždy ověř, že máš čistý pracovní adresář. Pokud máš necommitnuté změny, použij stash, jinak rebase selže nebo přijdeš o rozdělanou práci.

      Poslední věc, kterou je potřeba hlídat, je reakce na konflikty během rebase. Když Git zastaví a oznámí konflikt, nepanikař. Otevři konfliktní soubory, vyřeš je, přidej je do indexu a pokračuj v rebase. Pokud si nejsi jistý, můžeš rebase kdykoli přerušit a vrátit se do původního stavu. Nikdy ale necommituj konfliktní značky. To je chyba, která se objeví až v produkci a odhalit ji může trvat dlouho.

      Největší chybou při snaze o lineární historii je zapomenutí na to, že fast-forward není vždy možný. Pokud větev obsahuje commity, které nejdou aplikovat na aktuální stav cílové větve, Git vytvoří merge commit i při použití merge. Řešením je rebase před sloučením. Další častá chyba je rebase příliš mnoha commitů najednou. Když jich je dvacet, konflikty se hromadí a řešení je nepřehledné. Lepší je rebase po menších částech nebo použít interaktivní rebase a commity rozdělit či sloučit.

      Kdy rebase použít a kdy ho raději vynechat Rebase je bezpečný na větvích, které ještě nikdo jiný nepoužívá. Jakmile svou větev pushneš a kolegové na ní staví, rebase je zakázaný. Přepisovat veřejnou historii znamená, že ostatním přestanou fungovat jejich lokální kopie a budou muset řešit vynucený push. To je častý zdroj zmatku a ztracené práce. Pravidlo je jednoduché: rebase na soukromých větvích, merge nebo fast-forward na sdílených.

Viewing 0 reply threads
  • You must be logged in to reply to this topic.