mirror of
https://github.com/git-learning-game/oh-my-git.git
synced 2024-11-24 16:20:08 +01:00
Polishing the intro chapter
This commit is contained in:
parent
a86fcaadbb
commit
cab8a9837c
7 changed files with 97 additions and 90 deletions
29
levels/intro/commit
Normal file
29
levels/intro/commit
Normal file
|
@ -0,0 +1,29 @@
|
||||||
|
title = Your first commit
|
||||||
|
cards = commit-auto
|
||||||
|
|
||||||
|
[description]
|
||||||
|
|
||||||
|
You can use your time machine to make snapshots of objects around you!
|
||||||
|
|
||||||
|
Here, let's practice this!
|
||||||
|
|
||||||
|
(Your teacher pours some water into a glass.)
|
||||||
|
|
||||||
|
[setup]
|
||||||
|
|
||||||
|
echo "The glass is full of water." > glass
|
||||||
|
|
||||||
|
[win]
|
||||||
|
|
||||||
|
# Make a snapshot of the glass (a "commit")
|
||||||
|
git rev-parse HEAD
|
||||||
|
|
||||||
|
# Change the contents of the glass!
|
||||||
|
! test "$(cat glass)" = "The glass is full of water."
|
||||||
|
|
||||||
|
# And make a second commit!
|
||||||
|
git rev-parse HEAD^ && ! test "$(git show main:glass)" = "The glass is full of water."
|
||||||
|
|
||||||
|
[congrats]
|
||||||
|
|
||||||
|
Nice! You can try making some additional commits. When you feel comfortable, click on "Next Level".
|
|
@ -3,44 +3,40 @@ cards =
|
||||||
|
|
||||||
[description]
|
[description]
|
||||||
|
|
||||||
One month later, you're working on an essay about cats.
|
This time, you're making a lot of backup copies - you can look at them by clicking on them!
|
||||||
|
|
||||||
You've started making backup copies of your essay regularly - you can look at them by clicking on them!
|
|
||||||
|
|
||||||
You think that you're almost done - your current version, just needs one more line!
|
|
||||||
|
|
||||||
[congrats]
|
[congrats]
|
||||||
|
|
||||||
Okay, this kind of works.
|
Okay, this kind of works.
|
||||||
|
|
||||||
But you're a bit worried that two weeks from now, you'll have hundreds of copies of your essay, and it will be hard to keep track of all of them.
|
But you're a bit worried that you'll end up with hundreds of copies of this form, and it will be hard to keep track of all of them.
|
||||||
|
|
||||||
And especially when working with other people, sending copies back and forth doesn't seem ideal.
|
And especially when working with other people, sending copies back and forth doesn't seem ideal.
|
||||||
|
|
||||||
You wonder what would be a better way to do this.
|
You can't wait to try these time machines!
|
||||||
|
|
||||||
[setup]
|
[setup]
|
||||||
|
|
||||||
rm -rf .git
|
rm -rf .git
|
||||||
|
|
||||||
echo "~ Why cats are the best pets ~
|
echo "~ Why I want to learn Git ~
|
||||||
|
|
||||||
(I still need to write this.)" >> essay.txt
|
(I still need to write this.)" >> form.txt
|
||||||
|
|
||||||
|
|
||||||
echo "~ Why cats are the best pets ~
|
echo "~ Why I want to learn Git ~
|
||||||
|
|
||||||
- They live longer than goldfish." >> essay2.txt
|
- So that I can undo mistakes" >> form2.txt
|
||||||
|
|
||||||
|
|
||||||
echo "~ Why cats are the best pets ~
|
echo "~ Why I want to learn Git ~
|
||||||
|
|
||||||
- They live longer than goldfish.
|
- So that I can undo mistakes
|
||||||
- Their little paws are super cute." >> essay2_final.txt
|
- To track my projects over time" >> form2_final.txt
|
||||||
|
|
||||||
cp essay2_final.txt essay2_really_final.txt
|
cp form2_final.txt form2_really_final.txt
|
||||||
|
|
||||||
[win]
|
[win]
|
||||||
|
|
||||||
# Add another line to essay2_really_final.txt!
|
# Add another line to form2_really_final.txt!
|
||||||
test "$(cat essay2_really_final.txt | wc -l )" -ge 5
|
test "$(cat form2_really_final.txt | wc -l )" -ge 5
|
||||||
|
|
|
@ -1,39 +0,0 @@
|
||||||
title = Enter the time machine
|
|
||||||
cards = init commit-auto checkout
|
|
||||||
|
|
||||||
[description]
|
|
||||||
|
|
||||||
Another month later, you're woking on an essay about tardigrades!
|
|
||||||
|
|
||||||
But this time, a friend has borrowed you a time machine!
|
|
||||||
|
|
||||||
It's called "Git", and it's very shiny.
|
|
||||||
|
|
||||||
[setup]
|
|
||||||
|
|
||||||
rm -rf .git
|
|
||||||
|
|
||||||
echo "~ Why tardigrades are cool ~
|
|
||||||
|
|
||||||
- They can survive in space.
|
|
||||||
- They are resistant to extreme heat and cold." > essay.txt
|
|
||||||
|
|
||||||
[win]
|
|
||||||
|
|
||||||
# Initialize the time machine!
|
|
||||||
test -d .git
|
|
||||||
|
|
||||||
# Make a snapshot of your essay (a "commit")
|
|
||||||
test -d .git && git rev-parse HEAD
|
|
||||||
|
|
||||||
# Add another line to the essay.
|
|
||||||
test "$(cat essay.txt | wc -l)" -ge 5
|
|
||||||
|
|
||||||
# And make a second commit!
|
|
||||||
git rev-parse HEAD^ && test "$(git show HEAD:essay.txt | wc -l)" -ge 5
|
|
||||||
|
|
||||||
[congrats]
|
|
||||||
|
|
||||||
Nice! You can now travel between those two snapshots using `git checkout` - try it, and look at the essay in each commit!
|
|
||||||
|
|
||||||
You can also make some additional commits. When you feel comfortable, click on "Next Level".
|
|
21
levels/intro/init
Normal file
21
levels/intro/init
Normal file
|
@ -0,0 +1,21 @@
|
||||||
|
title = Enter the time machine
|
||||||
|
cards = init
|
||||||
|
|
||||||
|
[description]
|
||||||
|
|
||||||
|
You've been accepted to time travel school! Yay! It's your first day! Your teacher explains:
|
||||||
|
|
||||||
|
"To do anything with a time machine, you first need to initialize it! Go ahead, try it!"
|
||||||
|
|
||||||
|
[setup]
|
||||||
|
|
||||||
|
rm -rf .git
|
||||||
|
|
||||||
|
[win]
|
||||||
|
|
||||||
|
# Initialize the time machine!
|
||||||
|
test -d .git
|
||||||
|
|
||||||
|
[congrats]
|
||||||
|
|
||||||
|
Nice! See that little owl squirrel that appeared? It will be your companion, and always show you where you are in time!
|
|
@ -3,41 +3,43 @@ cards = clone checkout commit-auto pull push
|
||||||
|
|
||||||
[description]
|
[description]
|
||||||
|
|
||||||
A friend has asked you to help with an essay about hobbies! She has already started to write a list, and started tracking it with her own time machine!
|
Let's add your name to our list of students!
|
||||||
|
|
||||||
|
I have a copy of it in my time machine - let's work together!
|
||||||
|
|
||||||
[congrats]
|
[congrats]
|
||||||
|
|
||||||
"Thanks, these are some really nice hobbies! Hope we can do that together soon!"
|
Welcome to time travel school! :) I'll see you for your first class tomorrow!
|
||||||
|
|
||||||
[setup]
|
[setup]
|
||||||
|
|
||||||
rm -rf .git
|
rm -rf .git
|
||||||
|
|
||||||
[setup friend]
|
[setup teacher]
|
||||||
|
|
||||||
echo "~ Best hobbies ~" > hobbies.txt
|
echo "~ List of current students ~" > students
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Initial version"
|
git commit -m "Initial version"
|
||||||
|
|
||||||
echo "
|
echo "
|
||||||
- Collecting stamps
|
- Sam
|
||||||
- Looking at clouds" >> hobbies.txt
|
- Alex" >> students
|
||||||
|
|
||||||
git add .
|
git add .
|
||||||
git commit -m "Added two hobbies"
|
git commit -m "Added two students"
|
||||||
|
|
||||||
[win]
|
[win]
|
||||||
|
|
||||||
# Get a copy of her timeline using `git clone`!
|
# Get a copy of your teacher's timeline using `git clone`!
|
||||||
test -d .git
|
test -d .git
|
||||||
|
|
||||||
# Add at least two more lines to hobbies.txt
|
# Add your name to the list of students
|
||||||
test "$(cat hobbies.txt |wc -l)" -ge 6
|
test "$(cat students |wc -l)" -ge 5
|
||||||
|
|
||||||
# Commit your result.
|
# Commit your result.
|
||||||
test "$(git show main:hobbies.txt |wc -l)" -ge 6
|
test "$(git show main:students |wc -l)" -ge 5
|
||||||
|
|
||||||
[win friend]
|
[win teacher]
|
||||||
|
|
||||||
# And use `git push` to send it to your friend!
|
# And use `git push` to send it to your teacher!
|
||||||
test "$(git show main:hobbies.txt |wc -l)" -ge 6
|
test "$(git show main:students |wc -l)" -ge 5
|
||||||
|
|
|
@ -3,11 +3,15 @@ cards =
|
||||||
|
|
||||||
[description]
|
[description]
|
||||||
|
|
||||||
So you're working on an essay about goldfish! Your current version is already quite nice, but needs a bit more work.
|
So you have decided to apply for time travel school, to learn how to use this time machine called "Git"!
|
||||||
|
|
||||||
|
How exciting!
|
||||||
|
|
||||||
|
You're almost done with the paperwork! You just need to fill in one more reason why you want to learn Git.
|
||||||
|
|
||||||
[congrats]
|
[congrats]
|
||||||
|
|
||||||
Suddenly, your cat jumps on your keyboard, deletes what you've written, and runs away! Oh no. Just look at it now! All your hard work, destroyed!
|
Suddenly, your cat jumps on the table, snatches away the form, and runs away! Oh no. All your hard work, gone!
|
||||||
|
|
||||||
You clearly need a better solution.
|
You clearly need a better solution.
|
||||||
|
|
||||||
|
@ -17,28 +21,22 @@ You clearly need a better solution.
|
||||||
|
|
||||||
rm -rf .git
|
rm -rf .git
|
||||||
|
|
||||||
echo "~ Why goldfish are the best pets ~
|
echo "~ Why I want to learn Git ~
|
||||||
|
|
||||||
- They are pretty.
|
- So that I can undo mistakes
|
||||||
- They don't pee on the carpet.
|
- To track my projects over time" >> form.txt
|
||||||
- They don't make any noise." >> essay.txt
|
|
||||||
|
|
||||||
echo "Your cat is sitting next to you, watching you intensely.
|
|
||||||
|
|
||||||
It's small, black, and very cute!" > cat
|
|
||||||
|
|
||||||
[actions]
|
[actions]
|
||||||
|
|
||||||
test "$(cat essay.txt | wc -l )" -ge 6 && echo "~ Why goldfish are the best pets ~
|
test "$(cat form.txt | wc -l )" -ge 5 && echo "(Has been stolen by your cat.)
|
||||||
|
|
||||||
- asdijwrlj
|
|
||||||
- they
|
|
||||||
- are
|
|
||||||
- delicious
|
|
||||||
- adfkafkasdufyasfiudasd" > essay.txt && rm -f cat
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
" > form.txt
|
||||||
|
|
||||||
[win]
|
[win]
|
||||||
|
|
||||||
# Add another line to essay.txt!
|
# Add another line to from.txt!
|
||||||
test "$(cat essay.txt | wc -l )" -ge 6
|
test "$(cat form.txt | wc -l )" -ge 5
|
||||||
|
|
|
@ -1,5 +1,5 @@
|
||||||
risky
|
risky
|
||||||
copies
|
copies
|
||||||
git
|
init
|
||||||
|
commit
|
||||||
remote
|
remote
|
||||||
who-are-you
|
|
||||||
|
|
Loading…
Reference in a new issue