Rebase

Tento úkol slouží k osvojení základní varianty operace rebase.

  1. Naklonujte si repozitář:
    git clone https://repo.gitc.cz/simple.git
    
  2. Nastavte sledování větve vetev (vytvoří lokální větev):
    git branch -t vetev origin/vetev
    
  3. Odstraňte remote:
    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í:

  1. Přesun větve vetev na/nad větev master.
  2. Fast-Forward merge větve 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