diff --git a/levels/intro/commit b/levels/intro/commit new file mode 100644 index 0000000..56346e9 --- /dev/null +++ b/levels/intro/commit @@ -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". diff --git a/levels/intro/copies b/levels/intro/copies index c36c2e2..ef05d24 100644 --- a/levels/intro/copies +++ b/levels/intro/copies @@ -3,44 +3,40 @@ cards = [description] -One month later, you're working on an essay about cats. - -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! +This time, you're making a lot of backup copies - you can look at them by clicking on them! [congrats] 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. -You wonder what would be a better way to do this. +You can't wait to try these time machines! [setup] 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. -- Their little paws are super cute." >> essay2_final.txt +- So that I can undo mistakes +- 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] -# Add another line to essay2_really_final.txt! -test "$(cat essay2_really_final.txt | wc -l )" -ge 5 +# Add another line to form2_really_final.txt! +test "$(cat form2_really_final.txt | wc -l )" -ge 5 diff --git a/levels/intro/git b/levels/intro/git deleted file mode 100644 index 5b404c0..0000000 --- a/levels/intro/git +++ /dev/null @@ -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". diff --git a/levels/intro/init b/levels/intro/init new file mode 100644 index 0000000..ded6150 --- /dev/null +++ b/levels/intro/init @@ -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! diff --git a/levels/intro/remote b/levels/intro/remote index a37ab23..48970ec 100644 --- a/levels/intro/remote +++ b/levels/intro/remote @@ -3,41 +3,43 @@ cards = clone checkout commit-auto pull push [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] -"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] rm -rf .git -[setup friend] +[setup teacher] -echo "~ Best hobbies ~" > hobbies.txt +echo "~ List of current students ~" > students git add . git commit -m "Initial version" echo " -- Collecting stamps -- Looking at clouds" >> hobbies.txt +- Sam +- Alex" >> students git add . -git commit -m "Added two hobbies" +git commit -m "Added two students" [win] -# Get a copy of her timeline using `git clone`! +# Get a copy of your teacher's timeline using `git clone`! test -d .git -# Add at least two more lines to hobbies.txt -test "$(cat hobbies.txt |wc -l)" -ge 6 +# Add your name to the list of students +test "$(cat students |wc -l)" -ge 5 # 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! -test "$(git show main:hobbies.txt |wc -l)" -ge 6 +# And use `git push` to send it to your teacher! +test "$(git show main:students |wc -l)" -ge 5 diff --git a/levels/intro/risky b/levels/intro/risky index 039a58a..9c49d66 100644 --- a/levels/intro/risky +++ b/levels/intro/risky @@ -3,11 +3,15 @@ cards = [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] -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. @@ -17,28 +21,22 @@ You clearly need a better solution. rm -rf .git -echo "~ Why goldfish are the best pets ~ +echo "~ Why I want to learn Git ~ -- They are pretty. -- They don't pee on the carpet. -- 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 +- So that I can undo mistakes +- To track my projects over time" >> form.txt [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] -# Add another line to essay.txt! -test "$(cat essay.txt | wc -l )" -ge 6 +# Add another line to from.txt! +test "$(cat form.txt | wc -l )" -ge 5 diff --git a/levels/intro/sequence b/levels/intro/sequence index b533017..82ef53c 100644 --- a/levels/intro/sequence +++ b/levels/intro/sequence @@ -1,5 +1,5 @@ risky copies -git +init +commit remote -who-are-you