Jak udržet větve ve vývoji (v Gitu) konzistentní? rubrika: Návrh
Dlouhodobě řeším u jednoho projektu, jak správně nastavit procesy práce s Gitem. Řekněme, že mám nějakou produkční větev, na které se řeší pouze bugfixy a už by se teoreticky neměly přidávat žádné nové vlastnosti. A pak je vývojová větev. Na té se samozřejmě musí opravovat stejné chyby, jako se řeší na produkci a navíc jsou zde vyvíjeny nové vlastnosti. Po určitém čase se vývojová větev prohlásí za produkční, stará produkční se odstaví a jede se od znova. Potud teorie funguje fajn.
Kámen úrazu je v tom, že vydávání nových verzí a přidávání funkcí je vysoká politika, kterou moc nemám šanci ovlivnit. Snaha je zákazníka tlačit k co nejčastějším novým verzím, raději s méně novými funkcemi a mít obě větve co nejkonzistentnější. Jenže znáte zákazníky a víte, že to vždycky úplně dobře nejde. Že velikost verzí občas přeroste přes hlavu a chyby je pak potřeba opravovat na dvou nijak nesouvisejících kódech. A úplné peklo nastává, pokud si zákazník vzpomene, že by potřeboval nějakou novou vlastnost nasadit v předstihu. Zvlášť když nejde o triviální změnu barviček na pozadí.
Řešili jste nějakou podobnou situaci, kdy jste museli vyvíjet souběžně na dvou větvích, stejné vlastnosti a udělat tak dvakrát víc práce úplně zbytečně? Jak podobnou situaci řešit?
Ved presne na riesenie takychto problemov Git vznikol. Nechcem ta teda hned obvinovat ze si Git nepochopil, ale z tvojej otazky to naozaj vyzera ze ho pouzivas ako SVN. Najjednoduchsie a najpriamociarejsie riesenie je kazdu novu vlastnost, alebo bugfix vyvijat vo vlastnej branchi. Po skonceni vyvoja potom tuto branch mergnes kam potrebujes.
Povedzme ze mas tieto branche:
master - aktualny produkcny kod
development - aktualne vyvijany kod
Povedzme ze development je v predstihu o niekolko commitov. Zrazu sa zisti bug na produkcii - nefunguje odhlasenie.
Postup bude potom nasledovny:
- Vytvoris novy branch z mastru, povedzme ze sa bude volat "BUG_logout". Nazvoslovie nie je podstatne, treba si vybrat nejaky system a dodrziavat ho
- Opravis chybu, commitnes ju, a pushnes ju do BUG_logout
- Kod sa otestuje
- Mergnes BUG_logout do mastru, nasadis kod
- Mergnes BUG_logout do developmentu
- ???
- Profit
Dufam, ze som to velmi nepoplietol :), som teraz dost chory. Ak nie, tak sa ospravedlnujem. Ak mes nejake dalsie otazky, tak sa kludne pytaj.
Pro zobrazení všech 2 odpovědí se prosím přihlaste:
Nebo se přihlaste jménem a heslem:
Komentáře