Autor Zpráva
joe
Profil
Ahoj,

mám situaci, že v repozitáři jsou například tyto větve

- master - odpovídá živé verzi webu
- stage - odpovídá tomu, na co si klient vzpomene :-)
- pak nějaké další větve, ve kterých jsou větší zásahy do systému

Ne pokaždé ale nastane situace, že se bude spojovat stage do masteru. Například tak, že na stage se vytvoří něco, co klient ještě nechce nebo si žádá ještě o úpravu. Otázkou je, jakým správným způsobem dostat (sloučit/zmergovat) vybrané commity (nejedná se o poslední commity, ani nemusí jít po sobě...) například ze stage větve do masteru?

Využívám Git Extensions, protože nemam rád příkazovou řádku a nebo Netbeans. Našli jsme způsob, že to jde přes tzv. Patche, je to správná cesta? Nejde to jinak? Lépe?


A dál pokud by mi někdo prosím vysvětlil, k čemu je v Netbeans Pull downstream a Pull upstream (myslím, že tak to tam je, a že to souvisí přímo s Gitem, ačkoli v Git Extensions to nevidím) a jaký je mezi tím vlastně rozdíl? Hledal jsem, ale nějak to nemůžu pochopit.

Díky moc
Tori
Profil
joe:
jakým správným způsobem dostat (sloučit/zmergovat) vybrané commity (nejedná se o poslední commity, ani nemusí jít po sobě...) například ze stage větve do masteru
Není na tohle git cherry-pick?
joe
Profil
Tori:
Nevím, právě se v tom Gitu ještě moc nevyznám... proto se ptám :-)
juriad
Profil
pokud chceš přenést z jedné větve jen některé commity do druhé (po jednom), tak buď:
git cherry-pick
nebo
pokud je to sekvence commitů po sobě:
git rebase (bacha, přečti si dokumentaci, často je ho těžké přesvědčit o tom, co chceš ty)
správnějším přístupem by mohlo být přeuspořádat projekt například takto:
větev master bude aktuální stabilní - tady je jen to, co funguje a je u všech klientů
větve stage1, stage2 budou aktuální vývojové - sem jde to, co se teprve vyvíjí a je určeno všem klientům (jedna bude typicky zběsilá, kde probíhá čilý ruch a další budou stabilizační, kde se opravují mouchy před mergem do masteru)
větve client1, client2, ... - jsou odbočky z masteru - obsahují věci specifické pro klienta n - například každý klient bude mít své vlastní logo
               /---stage2
----master----stage1
     \--client1
     \--client2---vlastnost
workflow bude:
vyvíjím v stage, jakmile je stage stabilní, ji zamerguju do masteru a master zamerguju do všech clientů (1)
pokud si jen jeden zákazník něco vyžádá, tak to vyvíjím ve větvi (vlastnost) pod clientem a zamerguju do clienta jakmile je to hotové
pokud chci client specific vlastnost dostat do masteru, tak udělám rebase příslušné větve do další nové větve stage a pokračuju krokem (1)

pro pochopení gitu doporučuji knihu http://www.root.cz/knihy/pro-git/ je zdarma a česky
joe
Profil
juriad, Tori:
Díky, nakonec to řeší ten "Cherry pick commit", prozkoumal jsem uživatelský manuál k Git Extensions, kde to je i trochu vysvětlené.

Vaše odpověď

Mohlo by se hodit

Pokuste se již v titulku uvést název programu související s tématem.

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: