1 post / 0 new
Guest (not verified)
5 pravidel, jak udržet historii Git bez merge commitů

Prvním krokem je soupis majetku. Projděte s vedoucími jednotlivých oddělení kanceláře a rozhodněte, co jde do nových prostor a co ne. Starý nábytek, nefunkční elektronika nebo archivy po lhůtě skladování zbytečně prodražují přesun. U každé položky určete, zda se opraví, prodá, zlikviduje, nebo přestěhuje. Výsledkem je tabulka, podle níž se dá objednat doprava i úklid. Teprve potom má smysl oslovovat stěhovací firmy a žádat nabídky na stejný rozsah prací.

Nejčastější chybou je podcenit čas na vybalení a zapojení techniky. Další bývá chybějící seznam majetku, kvůli němuž se na konci hledá, co vlastně zmizelo. Vyhněte se také tomu, že se stěhuje v pátek odpoledne bez zajištěného přístupu do nové budovy. Kdo si předem připraví harmonogram, odpovědnosti a záložní variantu pro případ zpoždění, zvládne stěhování kanceláře bez zbytečného stresu a s minimálním dopadem na chod firmy.

Po dvou až třech měsících budeš mít přehled, který se nedá koupit. Uvidíš, které výdaje jsou pevné a které se hýbou. Právě ty pohyblivé jsou tvé rezervy. Nejde o to utratit co nejméně, ale utratit vědomě. Rodina, která ví, kam peníze jdou, nemusí žít v napětí. A často zjistí, že rezervy nebyly nikdy daleko – jen byly rozptýlené v rozhodnutích, která nikdo nezkontroloval.

Nejčastější chyby: obalení jen jednou vrstvou fólie, ponechání šroubů volně v krabici, přeprava skla položeného naplocho a spoléhání na to, že „to vydrží". Po příjezdu nábytek vybalte až na místě, kde bude stát, a před smontováním zkontrolujte, zda někde nechybí kolík. Sklo skládejte na čistou podložku, ne na beton. Pokud deska sedí v rámu těsně, nepomáhejte si kladivem — použijte gumovou palici a dřevěný hranol.

Nejčastější chybou je rebase po pushnutí větve na vzdálený server. Následný git push selže, protože historie nesouhlasí. Řešením je git push --force-with-lease, ale pouze na větvi, kde nikdo jiný nepracuje. Nikdy nepoužívejte prostý --force, přepíšete i cizí commity. Další chyba: zapomenutý git fetch před rebase. Bez aktuální main větve rebasujete na zastaralý základ a konflikty se vrší.

Dítě u jídelního stolu s učebnicí mezi talíři se nesoustředí, i když se snaží. Mozek potřebuje jasný signál, že na tomto místě se pracuje. Nejde o drahé vybavení ani o velký pokoj. Rozhoduje oddělení od zbytku domácnosti — vizuální, sluchové a rituální. Pokud pracovní koutek splývá s místem odpočinku nebo hry, pozornost se rozpadá během několika minut.

Merge commity vznikají ve chvíli, kdy větev sloučíte s jinou pomocí git merge. V malém týmu to jde, ale při větším počtu vývojářů se historie změní v nepřehlednou pavučinu, kde nejde poznat, co k čemu patří. Řešením je rebase nebo squash. Následujících pět pravidel se v praxi osvědčilo.

Prvním krokem je nastavit git config --global pull.rebase true. Tím se každý git pull stane rebase místo merge a vy se vyhnete zbytečným merge commitům už při stahování změn. Pokud pracujete na sdílené větvi, dejte pozor: rebase mění historii, takže ji nikdy nedělejte na větvi, kterou už někdo jiný stáhl. Osobní větve jsou v pořádku, sdílené ne.

Lineární historie není dogma, ale nástroj. Pokud tým tvoří tři lidé a pracují na oddělených částech, merge commity ničemu nevadí. Jakmile ale začnete hledat, kdy se co rozbilo, rebase a squash vám ušetří hodiny. Začněte jedním pravidlem – rebase při pull – a zbytek přidávejte postupně. Klíčové je, aby všichni věděli, jak se historie upravuje, a nikdo neposílal force push do větve, kterou sdílí s ostatními.

V týmu si nastavte jasná pravidla. Hlavní větev chraňte před přímým pushnutím, povolte pouze fast-forward. Každý vývojář ať rebasuje svou větev denně, dokud je krátká. Dlouho otevřené větve se rebasují obtížně a hrozí konflikty. Před sloučením vždy spusťte testy na rebasované větvi, ne na původní. Až budete historii procházet pomocí git log --oneline --graph, uvidíte rovnou linii místo změti čar.

Jak rebase a squash v praxi používat Při slučování feature větve do hlavní použijte git rebase main na své větvi a teprve potom git merge --ff-only feature na main. Tím vznikne lineární historie. Alternativou je git merge --squash feature, který z celé větve udělá jeden commit. Squash je vhodný pro drobné opravy, rebase pro větší celky, kde chcete zachovat jednotlivé kroky. Pro interaktivní úpravu použijte git rebase -i HEAD~5 – můžete měnit pořadí, slučovat nebo mazat commity.

Add new comment

Filtered HTML

  • Web page addresses and e-mail addresses turn into links automatically.
  • Allowed HTML tags: <a> <em> <strong> <cite> <blockquote> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

Plain text

  • No HTML tags allowed.
  • Web page addresses and e-mail addresses turn into links automatically.
  • Lines and paragraphs break automatically.

Navigation

User login