Na závěr: šikmina není problém k vyřešení, ale prostor k přizpůsobení. Když ji necháte dýchat, získáte místo, které v místnosti nikdo jiný nemá. Když ji zaplníte bez rozmyslu, získáte jen drahou skříň, do které se nevejdete.
Kde se pohodlí ztrácí: osvětlení a zásuv
Pro vynucení lineární historie v týmu nastavte ochranu větve. Většina platforem umožňuje zakázat merge commity nebo vyžadovat rebase před sloučením. Lokálně to podpoříte konfigurací git config --global pull.rebase true a git config --global rebase.autoStash true. Při sloučení pull requestu pak použijte možnost „Rebase and merge" nebo „Squash and merge", pokud chcete jediný commit. Squash je vhodný pro malé úpravy, rebase zachová jednotlivé commity.
Rebase není merge: pozor na sdílené větve Rebase mění historii tím, že vytváří nové commity s novými hash. Pokud někdo jiný už má vaši větev staženou a vy ji přepíšete, jeho lokální kopie se rozejde s tou vaší. Při dalším pullu pak uvidí konflikty, které nedávají smysl. Proto platí: rebasujte pouze své lokální commity, které ještě nikdo jiný nemá. U sdílených větví (main, develop) používejte merge nebo lépe fast-forward only. Pro feature branch, na které pracujete sami, je rebase bezpečný.
Na závěr: šikmina není problém k vyřešení, ale prostor k přizpůsobení. Když ji necháte dýchat, získáte místo, které v místnosti nikdo jiný nemá. Když ji zaplníte bez rozmyslu, získáte jen drahou skříň, do které se nevejdete.
Začněte výběrem místa. Pracovní koutek nepatří ke dveřím, kudy se neustále prochází, ani k oknu s rušnou ulicí. Ideální je roh s pevnou zdí za zády a s výhledem do místnosti, ne ven. Dítě by nemělo sedět čelem k tomu, co ho láká, ale ani zády k otevřeným dveřím — každý zvuk za zády ho donutí se otáčet. Pokud je v pokoji jen jedno volné místo, postačí ho vymezit kobercem nebo nízkou policí.
Ocet funguje jako slabá kyselina. Rozpouští vodní kámen, minerální usazeniny a zbytky mýdla. Nejlépe účinkuje na sklo, keramiku, nerez, chrom a většinu kachliček. Bílý lihový ocet je pro čištění vhodnější než barevný, protože nezanechává skvrny. Před použitím ho nařeďte v poměru zhruba jedna část octa na jednu až dvě části vody. Silnější roztok může poškodit spáry, přírodní kámen nebo pogumované těsnění.
Typická chyba je rebase po pullu. Představte si, že jste si stáhli změny z remote a pak rebasujete. Git může vytvořit duplicitní commity nebo vás donutit řešit stejný konflikt dvakrát. Řešení: před rebase vždy proveďte git fetch a rebasujte na origin/main, ne na lokální main, který může být zastaralý. Také si dejte pozor na git pull --rebase – v některých konfiguracích vytváří merge commity, pokud není nastaveno pull.rebase true.
Začněte u vody a teploty. Termostatické baterie v koupelně a kuchyni zkracují ranní rutinu a snižují riziko opaření. Podlahové vytápění v koupelně není luxus, pokud tam trávíte každý den; studená dlažba je jedna z mála věcí, kterou lidé po rekonstrukci skutečně litují. U kuchyňské baterie si předem ověřte, jak daleko dosáhne výtok od dřezu – příliš krátké rameno znamená věčné otírání okolí.
Merge commity vznikají pokaždé, když sloučíte dvě větve a Git vytvoří nový commit se dvěma rodiči. Většina týmů je používá automaticky, protože to je výchozí chování. Jenže právě tyto commity zanechávají v historii šum: každá aktualizace z hlavní větve do feature branch vygeneruje další merge commit, a při zpětném čtení historie není poznat, co bylo skutečnou prací a co jen sléváním. Řešením je rebase místo merge při integraci změn.
Základní postup je jednoduchý. Před sloučením feature branch do hlavní větve proveďte git rebase main. Tím se vaše commity přehrají na aktuální špičku main a vytvoří lineární historii. Pokud během rebase narazíte na konflikty, Git vás vyzve k jejich vyřešení. Po každém vyřešení spusťte git add a git rebase --continue. Když chcete rebase přerušit, použijte git rebase --abort. Nikdy nerebasujte commity, které už byly odeslány do sdílené větve, pokud si nejste jisti, že je nikdo jiný nepoužívá.
Nezapomeňte, že rebase není všelék. U velkých týmů s dlouho běžícími větvemi může být rebase bolestivý kvůli častým konfliktům. V takovém případě je lepší merge, ale s vědomím, že historie bude obsahovat merge commity. Kompromisem je rebase feature branch na main před každým mergem a následný fast-forward merge. Tím získáte lineární historii i bez merge commitů. Vždy ale komunikujte – pokud někdo jiný pracuje na stejné větvi, rebase může způsobit zmatky.