Tento úkol slouží k osvojení základní varianty operace rebase.
git clone https://repo.gitc.cz/simple.git
vetev
(vytvoří lokální větev):git branch -t vetev origin/vetev
git remote remove origin
Pokud byste nyní provedli merge větve vetev
do větve master
(sekvence příkazů git checkout master
; git merge vetev
), vznikne merge commit. Pokuste se pomocí operace git rebase
přesunout commity tak, aby bylo možné provést merge do větve master
(sekvenci příkazů git checkout master
; git merge vetev
) tak, aby se jednalo o fast-forward merge.
Pro zvládnutí tohoto cvičení pomůže uvědomit si, jaký je rozdíl mezi příkazy git merge NAME
a git rebase NAME
v použití jejich NAME
argumentu a symbolické reference HEAD
:
git merge NAME
zahrne změny z větve NAME
do větve označené symbolickou referencí HEAD
.
git rebase NAME
přesouvá změny z větve označené symbolickou referencí HEAD
do větve NAME
.
Řešení úkolu závisí na správném pořadí:
vetev
na/nad větev master
.vetev
do větve master
.Jedná se tedy o tuto sekvenci příkazů:
git checkout vetev
git rebase master
git checkout master
git merge vetev