mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2024-12-24 20:33:19 +01:00
66 lines
1.4 KiB
Text
66 lines
1.4 KiB
Text
|
title = Make parallel commits
|
||
|
cards = checkout commit-auto
|
||
|
|
||
|
[description]
|
||
|
|
||
|
Did you know that creating parallel timelines is perfectly legal and safe? It's true!
|
||
|
|
||
|
Can you find out when things went wrong in this zoo? Then, go back to the last good commit and create a parallel universe where everyone is happy!
|
||
|
|
||
|
[cli]
|
||
|
|
||
|
The blue animal represents a concept known as the "HEAD pointer" in Git: It shows you which commit is the current one.
|
||
|
|
||
|
Here's a cool trick to go to the previous commit:
|
||
|
|
||
|
git checkout HEAD^
|
||
|
|
||
|
You can also go back two commits by typing, for example:
|
||
|
|
||
|
git checkout HEAD~2
|
||
|
|
||
|
[setup]
|
||
|
|
||
|
mkdir cage
|
||
|
echo "Looks very hungry." > cage/lion
|
||
|
|
||
|
echo "A small child.
|
||
|
It really loves cats!" > child
|
||
|
git add .
|
||
|
git commit -m "The beginning"
|
||
|
|
||
|
echo "It's holding a lollipop." >> child
|
||
|
git commit -am "The child buys something"
|
||
|
|
||
|
mv child cage
|
||
|
git add .
|
||
|
git commit -m "The child climbs somewhere"
|
||
|
|
||
|
git rm cage/child
|
||
|
echo "Looks happy. :)" > cage/lion
|
||
|
git add .
|
||
|
git commit -m "Oh no"
|
||
|
|
||
|
echo "It's sleeping." > cage/lion
|
||
|
git add .
|
||
|
git commit -m "Nap time!"
|
||
|
|
||
|
git checkout --detach
|
||
|
git branch -d main
|
||
|
|
||
|
[win]
|
||
|
|
||
|
# Make sure that the child is happy.
|
||
|
git ls-tree --name-only -r HEAD | grep child
|
||
|
|
||
|
# Make sure that the lion gets something to eat.
|
||
|
git show HEAD:cage/lion | grep -v "very hungry"
|
||
|
|
||
|
[congrats]
|
||
|
|
||
|
Whew, good job! This seems like a *much* better outcome.
|
||
|
|
||
|
Feel free to add more parallel timelines, or make them longer.
|
||
|
|
||
|
If you're ready, our next mission is already waiting...
|