Co získáte, když prostor u sprchového koutu využijete naplno
Základem je rebase místo merge při aktualizaci vlastní větve. Místo git pull použijte git pull --rebase, případně si nastavte git config --global pull.rebase true. Vaše commity se přehrají na aktuální vrchol cílové větve a vznikne lineární historie. Pozor na jednu věc: rebase nikdy nedělejte na větvi, kterou už někdo jiný stáhl a staví na ní. Přepíšete tím existující commity a kolegovi vznikne konflikt, který si sám nevyřeší.
Prostor u sprchového koutu bývá v koupelně tím nejhůř využitým místem. Často tam skončí jen láhev od šamponu a zbytek zůstane prázdný, i když pár centimetrů vedle chybí místo na ručník nebo na čistící prostředky. Přitom stačí pár promyšlených úprav a z mrtvého rohu se stane funkční zóna, která ubere chaos, ne podlahovou plochu.
První pravidlo zní: jídlo s sebou. Svačina a pití v batohu jsou nejčastější důvod, proč výlet skončí neplánovanou zastávkou, kde se utratí víc, než se plánovalo. Upečte jednoduchý chléb nebo připravte domácí müsli tyčinky už v pátek. Není potřeba nic složitého – stačí to, co zvládne i ten, kdo běžně nevaří. Druhé pravidlo: domluvte si předem čas návratu. Bez něj se výlet natáhne, přijdou hlady a únava a rodina skončí tam, kde se utrácí.
Nejčastější chyba při výběru raftingové výbavy není špatná značka ani cena. Je to výběr podle toho, co vypadá dobře na fotografii z katalogu, místo podle toho, po jaké řece skutečně pojedete. Přilba a vesta plní na různě divoké vodě úplně jiné úkoly a kompromis, který funguje na jedné řece, může být na jiné nebezpečný.
Pracovní deska musí být souvislá alespoň šedesát centimetrů. Pokud ji přerušíte sporákem nebo dřezem uprostřed, vzniknou dva nepoužitelné pruhy. Přesuňte dřez do rohu a sporák na konec linky. Získáte tak jeden velký kus desky na krájení a odkládání. Nad ním pak umístěte lištu s háčky na náčiní, které by jinak leželo ve stojanu na desce.
Nejčastější chyba je snaha rebasovat veřejné větve, zejména hlavní. Jakmile je commit na hlavní větvi a ostatní na něm staví, jakákoli jeho úprava znamená přepis historie a nucený push. To je přijatelné jen na větvi, kterou máte výhradně pro sebe. Pokud si nejste jistí, zda je větev soukromá, berte ji jako veřejnou a raději použijte merge. Stejně tak pozor na rebase rozpracované větve s mnoha konflikty: každé přehrání může konflikt vrátit a práce se protáhne.
Vyberte si stanoviště s volným výhledem k obzoru, ideálně na kopci nebo na okraji pole. Halové jevy bývají nejlépe vidět, když je Slunce mezi 20 a 40 stupni nad obzorem. Potřebujete k tomu jasnou oblohu s tenkou vrstvou cirrů, ne s hustými mraky. Měsíční halo je slabší, ale bezpečné: stačí se postavit tak, aby Měsíc nebyl v přímém zorném poli, a nechat oči přivyknout tmě alespoň deset minut. Fotografujte s delším ohniskem a clonou kolem f/8, aby prstenec zůstal ostrý. Irizace vyžaduje opak: krátké ohnisko, clonu otevřenou a přesnou expozici na světlé skvrny, jinak barvy zmizí.
Merge commity vznikají v okamžiku, kdy do větve vléváte jinou větev a Git místo přehrání commitů vytvoří nový slučovací záznam. Většina týmů je používá automaticky, protože je to výchozí chování příkazu git pull. Jenže právě tady se hromadí šum: historie se rozvětvuje, graf vypadá jako pavučina a dohledání, který commit něco rozbil, zabere zbytečně dlouho. Řešení není složité, ale vyžaduje dohodu v týmu a změnu návyků.
Jak sloučit větev do hlavní bez merge commitu Při dokončení práce máte dvě čisté možnosti. První je fast-forward merge: pokud je vaše větev postavená přímo na aktuálním vrcholu hlavní větve, stačí git merge --ff-only moje-vetev a žádný merge commit nevznikne. Druhá je squashing, kdy se všechny commity z větve sloučí do jednoho. To uděláte buď interaktivním rebase přes git rebase -i hlavni-vetev a volbou squash, nebo na straně serveru v nastavení pull requestu. Squash je vhodný pro malé úpravy, ale u rozsáhlé práce ztratíte jednotlivé kroky a s nimi i možnost zpětné dohledatelnosti.
Výsledkem není jen hezčí graf. Lineární historie znamená, že git bisect funguje spolehlivě, git log se čte odshora dolů a revert jednoho commitu vrátí přesně jednu změnu. Merge commity samy o sobě nejsou špatné, jen je dobré vědět, kdy je vytváříte záměrně a kdy jen proto, že jste si nezměnili výchozí nastavení.
V týmu se osvědčuje několik pravidel. Krátké větve, které žijí hodiny nebo dny, se rebasují snadno. Dlouhé větve slučujte přes merge, i za cenu merge commitu, protože riziko přepisu je vyšší než estetický přínos. Před každým rebase si udělejte záložní větev příkazem git branch zaloha, abyste se mohli vrátit, když se něco pokazí. A hlavně: nastavte si v repozitáři ochranu hlavní větve, která zakáže force push. Bez ní se dřív nebo později najde někdo, kdo historii přepíše omylem.