oh-my-git/levels/branches/reorder

90 lines
1.9 KiB
Plaintext

title = Moving branches around
cards = checkout commit-auto merge reset-hard
[description]
One of your colleagues messed up here, and put the branches in the wrong timelines!
You could delete and re-create these branches - but you can also directly move them to different commits, by using
git checkout
on the branch names, and then using
git reset --hard
on the commit where you want the branch to be.
The donut branch is in the right place, but the timeline is still incomplete - make you actually *eat* the donut in that branch!
[setup]
echo "You do not have a baguette.
You do not have coffee.
You do not have a donut." > you
git add .
git commit -m "The Beginning"
git checkout -b coffee
echo "You have a baguette.
You do not have coffee.
You do not have a donut." > you
git add .
git commit -m "You buy a baguette"
echo "You ate a baguette.
You do not have coffee.
You do not have a donut." > you
git add .
git commit -m "You eat the baguette"
git checkout -b baguette main
echo "You do not have a baguette.
You have coffee.
You do not have a donut." > you
git add .
git commit -m "You buy some coffee"
echo "You do not have a baguette.
You drank coffee.
You do not have a donut." > you
git add .
git commit -m "You drink the coffee"
git checkout -b donut main
echo "You do not have a baguette.
You do not have coffee.
You have a donut." > you
git add .
git commit -m "You buy a donut"
git checkout --detach main
[win]
# Did you eat a baguette on the baguette branch?
git show baguette:you | grep "You ate.*baguette"
# Did you drink a coffee on the coffee branch?
git show coffee:you | grep "You drank.*coffee"
# Did you eat a donut on the donut branch?
git show donut:you | grep "You ate.*donut"
[actions]
test "$(git rev-parse HEAD^)" = "$(git rev-parse donut)" && hint "Remember to checkout the blue branch tag when you want it to grow with the timeline."