some levels translated

This commit is contained in:
Luca Canali 2021-09-13 17:54:39 +02:00
parent 331f08b899
commit 68577813c2
11 changed files with 156 additions and 159 deletions

View file

@ -1,43 +1,43 @@
title = Moving through time title = Muoversi attraverso il tempo
cards = checkout commit-auto cards = checkout commit-auto
[description] [description]
The yellow boxes are frozen points in time, we call them "commits"! You can travel between them using the "checkout" card! (Try it!) La scatole gialle sono un punto fisso nel tempo, possiamo chiamarli "commits"! Puoi viaggiare tra loro usando la carta "checkout"! (Provala!)
Can you find out what happened here? Then, while on the last commit, edit the files to fix the problem, and make a new commit! Puoi scoprire cosa è successo qui? Quindi, durante ultimo commit, modifica i files per risolvere il problema ed invia un nuovo commit!
[cli] [cli]
To checkout a specific commit, type `git checkout`, then a space, and then right click on the commit you want! Guarda uno specifico commit, digita `git checkout` uno spazio e premi il tasto destro sopra il commit che vuoi!
This will insert the commit's unique identifier! Questo inserirà l'identificatore unico del commit!
[setup] [setup]
echo "This piggy bank belongs to the big sister. echo "Questo salvadanaio appartiene alla sorella maggiore.
It contains 10 coins." > piggy_bank Contiene 10 monete." > piggy_bank
git add . git add .
git commit -m "The beginning" git commit -m "L'inizio"
echo "A young girl with brown, curly hair." > little_sister echo "Una giovane donna con capelli, ricci, marroni." > little_sister
git add . git add .
git commit -m "Little sister comes in" git commit -m "La sorella piccola è arrivata"
echo "Has 10 coins." >> little_sister echo "Ha 10 monete." >> little_sister
echo "This piggy bank belongs to the big sister. echo "Questo salvadanaio appartiene alla sorella maggiore.
It is empty." > piggy_bank E' vuoto." > piggy_bank
git add . git add .
git commit -m "Little sister does something" git commit -m "La sorella piccola ha fatto qualcosa"
git checkout HEAD^^ git checkout HEAD^^
git branch -df main git branch -df main
[win] [win]
# Restore sisterly peace. # Ripristina il salvadanaio della sorella.
{ git show HEAD:piggy_bank | grep "10 coins"; } && { git show HEAD:little_sister | grep -v "10 coins"; } && { git rev-parse HEAD^^^; } { git show HEAD:piggy_bank | grep "10 monete"; } && { git show HEAD:little_sister | grep -v "10 monete"; } && { git rev-parse HEAD^^^; }
[congrats] [congrats]
Wonderful! Now that you're getting familiar with the time machine, let's look at some more complicated situations... Stupendo! Adesso hai preso famiglirità con la macchina del tempo, vediamo situazioni più complicate...

View file

@ -1,65 +1,65 @@
title = Make parallel commits title = Crea universi paralleli
cards = checkout commit-auto cards = checkout commit-auto
[description] [description]
Did you know that creating parallel timelines is perfectly legal and safe? It's true! Sai che creare line temporali parallele è perfettamente legale e sicuro? Vero!
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! Puoi scoprire qundo le cose sono andate male in questo zoo? Poi torna all'ultimo momento buono e crea un universo parallelo dove sono tutti felicy!
[cli] [cli]
The blue animal represents a concept known as the "HEAD pointer" in Git: It shows you which commit is the current one. L'animale blue rappresenta un concetto conosciuto come "HEAD pointer" in Git: Ti mostra qual'è il commit attuale.
Here's a cool trick to go to the previous commit: Ecco un simpatico trucchetto andare al commit precedente:
git checkout HEAD^ git checkout HEAD^
You can also go back two commits by typing, for example: Puoi anche andare indietro di 2 commit digitando, pre esempio:
git checkout HEAD~2 git checkout HEAD~2
[setup] [setup]
mkdir cage mkdir cage
echo "Looks very hungry." > cage/lion echo "Sembra molto affamato." > cage/lion
echo "A small child. echo "Un ragazzino..
It really loves cats!" > child Ama veramente i gatti!" > child
git add . git add .
git commit -m "The beginning" git commit -m "L'inizio"
echo "It's holding a lollipop." >> child echo "Tiene in mano un leccalecca." >> child
git commit -am "The child buys something" git commit -am "Il ragazzo compra qualcosa"
mv child cage mv child cage
git add . git add .
git commit -m "The child climbs somewhere" git commit -m "Il bambino si arrampica da qualche parte"
git rm cage/child git rm cage/child
echo "Looks happy. :)" > cage/lion echo "E' felice. :)" > cage/lion
git add . git add .
git commit -m "Oh no" git commit -m "Oh no"
echo "It's sleeping." > cage/lion echo "Sta dormendo." > cage/lion
git add . git add .
git commit -m "Nap time!" git commit -m "Ora del pisolino!"
git checkout --detach git checkout --detach
git branch -d main git branch -d main
[win] [win]
# Make sure that the child is happy. # Assicurati che il ragazzino sia felice.
git ls-tree --name-only -r HEAD | grep child git ls-tree --name-only -r HEAD | grep child
# Make sure that the lion gets something to eat. # Assicurati che il leone abbia qualcosa da mangiare.
git show HEAD:cage/lion | grep -v "very hungry" git show HEAD:cage/lion | grep -v "molto affamato"
[congrats] [congrats]
Whew, good job! This seems like a *much* better outcome. Whew, ottimo lavoro! Questo sembra un risultato molto migliore.
Feel free to add more parallel timelines, or make them longer. Sentiti libero di aggiungere altre line temporali parallele o allungarle.
If you're ready, our next mission is already waiting... Se sei pronto, la prossima missione ci sta aspettando...

View file

@ -1,34 +1,33 @@
title = Branches grow with you! title = I rami crescono con tè!
cards = checkout commit-auto branch branch-delete reset-hard cards = checkout commit-auto branch branch-delete reset-hard
[description] [description]
Note that there are two options to "travel to the end of a timeline": Nota che ci sono due opzioni per "viaggire fino alla fine della linea temporale":
First, you can directly travel to the commit, like we've done it before. Primo, puoi direttamente viaggiare al commit, come abbiamo fatto prima.
And second, you can travel to the branch label. In this case, when you make a new commit, the branch will grow with you, and still point at the end of the timeline! e secondo, puoi viaggiare fino all'etichetta del ramo. In questo caso, quando crei un nuovo commit, il ramo cresce con te e punta ancora alla fine della linea temporale!
[cli] [cli]
Per viaggire in un ramo, digita `git checkout name_of_the_branch`.
To travel to a branch, type `git checkout name_of_the_branch`. e per viaggiare all'ultimo commit, digita `git checkout --detach name_of_the_branch`.
And to travel to the last commit, type `git checkout --detach name_of_the_branch`.
[setup] [setup]
echo "You wrap the birthday present, and grab your concert ticket." > you echo "In carti il regalo di complanno e prendi il biglietto del concerto." > you
git add . git add .
git commit -m "Evening preparations" git commit -m "Preparazioni della sera"
echo "You go to the birthday party!" >> you echo "Vai alla festa di compleanno!" >> you
git add . git add .
git commit -m "Go to the birthday" git commit -m "Vai alla festa di compleanno"
git branch birthday git branch birthday
git checkout HEAD~1 git checkout HEAD~1
echo "You go to the concert!" > you echo "Vai al concerto!" > you
git add . git add .
git commit -m "Go to the concert" git commit -m "Vai al concerto"
git branch concert git branch concert
git checkout HEAD~1 git checkout HEAD~1
@ -37,7 +36,7 @@ git branch -D main
[win] [win]
# Travel directly to the last yellow commit of the birthday timeline, make a change to 'you', and make a commit # Viaggi direttamente all'ultimo commit giallo della line temporale del compleanno, fai un cambiamento per te e crea un commit
for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch-all-objects | grep 'commit$' | cut -f1 -d' '); do for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch-all-objects | grep 'commit$' | cut -f1 -d' '); do
if test $(git rev-parse $commit^) = $(git rev-parse birthday); then if test $(git rev-parse $commit^) = $(git rev-parse birthday); then
return 0 return 0
@ -45,5 +44,5 @@ for commit in $(git cat-file --batch-check='%(objectname) %(objecttype)' --batch
done done
return 1 return 1
# Travel to the blue 'concert' branch, make a change to 'you', and a commit. # Viaggi fino al ramo, blue, del concerto, fai un cambiamento ed un commit.
git show concert^ | grep "Go to the concert" git show concert^ | grep "Vai al concerto"

View file

@ -1,14 +1,13 @@
title = Branch from stash title = Ramo dalla scorta
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
If you want to keep your changes but they don't belong to the main branch, you can easily Se vuoi matenere tutte le modifiche ma non appartengono al ramo principale, puoi facilemnte creare un nuovo ramo dai cambiamenti dalle modifiche nascoste. Usando
create a new branch from your stashed changes. Just use
git stash branch <branchname> <stash> git stash branch <branchname> <stash>
If you just want to use the latest stash entry, you can leave the <stash> option empty. Se vuoi solo usare l'ultimo elemento della scorta puoi lasciare vuota l'opzione <stash>.
Create a new branch from the stashed changes! Crea un nuovo ramo dalle modifiche nascoste!!
--- ---
tipp1 tipp1
@ -19,24 +18,24 @@ tipp3
[setup] [setup]
echo "Apple Pie:" > recipe echo "Torta di mele:" > recipe
git add . git add .
git commit -m "creating a recipe" git commit -m "creata una ricetta"
echo "- 4 Apples" >> recipe echo "- 4 Mele" >> recipe
git add . git add .
git commit -m "Adding ingredients" git commit -m "Aggiunto ingredienti"
echo "- 500g Flour" >> recipe echo "- 500g Farina" >> recipe
git stash push git stash push
git checkout main git checkout main
[win] [win]
# Did you create a new branch from the stashed changes? # Hai creato un nuovo ramo dai cambiamenti nascosti?
test "$(git branch --list| wc -l)" -ge 2 test "$(git branch --list| wc -l)" -ge 2
[actions] [actions]
@ -45,4 +44,4 @@ test "$(git branch --list| wc -l)" -ge 2
[congrats] [congrats]
Stashed changes are in a new branch! :) I cambiamenti nascosti sono nel nuovo ramo! :)

View file

@ -1,17 +1,17 @@
title = Clear the Stash title = Pulire la scorta
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
If you want to inspect your stash stack, use the command Se vuoi controllare la tua scorta, usa il comando
git stash list git stash list
Oh, you don't want to keep your stashed changes? There are way too many? Then go ahead and clear the stack with Oh, non vuoi mantenere i tuoi cambiamenti nella scorta? C'è un modo per farlo? Poi vai avanti e pulisci la scorta con
git stash clear git stash clear
If you only want to discard a certain stash entry, you can use Se vuoi solo scartare un certo elemento dalla scorta, puoi usare
git stash drop <stash> git stash drop <stash>
Clear your stash stack! Pulisci la tua pila di scorta!
--- ---
tipp1 tipp1
@ -22,30 +22,30 @@ tipp3
[setup] [setup]
echo "Apple Pie:" > recipe echo "Torta di mele:" > recipe
git add . git add .
git commit -m "creating a recipe" git commit -m "creata una ricetta"
echo "- 4 Apples" >> recipe echo "- 4 Mele" >> recipe
git add . git add .
git commit -m "Adding ingredients" git commit -m "Aggiunto ingredienti"
echo "- 500g Flour" >> recipe echo "- 500g Farina" >> recipe
git stash push git stash push
echo "- 200g Sugar" >> recipe echo "- 200g Zucchero" >> recipe
git stash push git stash push
echo "- Pinch of Salt" >> recipe echo "- Pizzico di sale" >> recipe
git stash push git stash push
git checkout main git checkout main
[win] [win]
# Did you clear your stash stack? # Hai pulito la tua pila di scorta?
test "$(git stash list | wc -l)" -eq 0 test "$(git stash list | wc -l)" -eq 0
[actions] [actions]
@ -54,4 +54,4 @@ test "$(git stash list | wc -l)" -eq 0
[congrats] [congrats]
All clear! :) Pulito tutto! :)

View file

@ -1,13 +1,12 @@
title = Merging popped stash title = Unire la scorta spuntata
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
When you want to reapply your changes but you already continued working on your file, you might get Quando vuoi riapplicare i cambiamenti ma hai continuato a lavora nei tuoi file, potresti ricevere un conflitto di unione! Facciamo un pò di pratica con questa situazione.
a merge conflict! Let's practise this situation. Fai uscire le modifiche dalla scorta con
Pop the changes from the stash with
git stash pop git stash pop
and resolve the merge conflict. Commit the resolved changes and clear the stash stack afterwards. e risolvi i conflitti di unione. Invia la soluzione dei cambiamenti e dopo pulisci la scorta.
--- ---
tipp1 tipp1
@ -18,31 +17,31 @@ tipp3
[setup] [setup]
echo "Apple Pie:" > recipe echo "Torta di mele:" > recipe
git add . git add .
git commit -m "creating a recipe" git commit -m "creata una ricetta"
echo "- 4 Apples" >> recipe echo "- 4 Mele" >> recipe
git add . git add .
git commit -m "Adding ingredients" git commit -m "Aggiunti ingredienti"
echo "- 500g Flour" >> recipe echo "- 500g Farina" >> recipe
git stash push git stash push
echo "- Pinch of Salt" >> recipe echo "- Pizzico di sale" >> recipe
git checkout main git checkout main
git add recipe git add recipe
[win] [win]
# Did you resolve the confict and commit? # Hai rislto i conflitti ed inviato?
{ git show HEAD | grep "Flour"; } && { git show HEAD | grep "Salt"; } { git show HEAD | grep "Farina"; } && { git show HEAD | grep "Sale"; }
# Did you clear stash stack? # Hai pulito la pila di scorta?
test "$(git stash list | wc -l)" -eq 0 test "$(git stash list | wc -l)" -eq 0
[actions] [actions]
@ -51,4 +50,4 @@ test "$(git stash list | wc -l)" -eq 0
[congrats] [congrats]
Yay, you got your changes back! :) Yay, hai riavuto le tue modifiche in dietro! :)

View file

@ -1,11 +1,11 @@
title = Pop from Stash title = Pop dalla scorta
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
When you stashed your changes and you want to apply them back to your current working directory, you can use Quando hai nascosto le tue modifiche e vuoi riapplicarle nella tua directory di lavoro, puoi usare
git stash pop git stash pop
This will remove the changes from the stash stack. If you also want to keep the changes on the stash stack, use Questo rimuoverà i cambiamenti dalla pila di scorta. Se voui anche mantenere le modifiche della pila di scorta usa
git stash apply git stash apply
--- ---
@ -17,24 +17,24 @@ tipp3
[setup] [setup]
echo "Apple Pie:" > recipe echo "Torta di mele:" > recipe
git add . git add .
git commit -m "creating a recipe" git commit -m "creata una ricetta"
echo "- 4 Apples" >> recipe echo "- 4 Mele" >> recipe
git add . git add .
git commit -m "Adding ingredients" git commit -m "Aggiunto ingredienti"
echo "- 500g Flour" >> recipe echo "- 500g Farina" >> recipe
git stash push git stash push
git checkout main git checkout main
[win] [win]
# Did you pop the changes from the stash stack? # Hai pop i cambiamenti dalla pila di scorta?
test "$(git stash list | wc -l)" -eq 0 test "$(git stash list | wc -l)" -eq 0
[actions] [actions]
@ -43,4 +43,4 @@ test "$(git stash list | wc -l)" -eq 0
[congrats] [congrats]
Yay, you got your changes back! :) Yay, hai riavuto i tuoi cambiamenti in dietro! :)

View file

@ -1,17 +1,17 @@
title = Creating tags title = Creare etichette
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
Some of your commits may be special commits. Maybe you reached a milestone or a new version number. Alcuni dei tuoi commit potrebbero essere commit speciali. Potresti aver raggiunto un traguargo o un nuovo numero di versione.
You can mark these commits with a special flag called 'tag'. Puoi contrassegnare questo commit con un flag spegiale chiamato 'tag'.
Write Scrivi
git tag <tag-name> git tag <tag-name>
to tag your commit. per etichettare il tuo commit.
--- ---
tipp1 tipp1
@ -22,26 +22,26 @@ tipp3
[setup] [setup]
echo "event 1" > feature-list echo "event 1" > elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 1" git commit -m "Aggiunta caratteristica 1"
echo "event 2" >> feature-list echo "event 2" >> elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 2" git commit -m "Aggiunta caratteristica 2"
echo "event 3" >> feature-list echo "event 3" >> elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 3" git commit -m "Aggiunta caratteristica 3"
git checkout --detach main git checkout --detach main
[win] [win]
# Did you create a new tag? # Hai creato un nuovo tag?
test "$(git tag -l | wc -l)" -ge 1 test "$(git tag -l | wc -l)" -ge 1
[actions] [actions]
@ -50,4 +50,4 @@ test "$(git tag -l | wc -l)" -ge 1
[congrats] [congrats]
Nice! You tagged your first commit :) Bene! Hai etichettato il tuo primo commit :)

View file

@ -1,14 +1,14 @@
title = Tagging later title = Etichettare dopo
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
But what happens if you forgot to tag your current commit? Ma cosa succede se ti dimentichi di etichettare il corrente commit?
No Prob! You can also tag older commits via No c'è problema! Puoi etichettare i vecchi commit tramite
git tag <tag-name> <commit-hash> git tag <tag-name> <commit-hash>
Tag the commit "Adding feature 2" with the name "v1"! Etichetta il commit "Aggiunta caratteristica 2" con il nome "v1"!
--- ---
tipp1 tipp1
@ -19,26 +19,26 @@ tipp3
[setup] [setup]
echo "event 1" > feature-list echo "event 1" > elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 1" git commit -m "Aggiunta caratteristica 1"
echo "event 2" >> feature-list echo "event 2" >> elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 2" git commit -m "Aggiunta caratteristica 2"
echo "event 3" >> feature-list echo "event 3" >> elecno-caratteristiche
git add . git add .
git commit -m "Adding feature 3" git commit -m "Aggiunta caratteristica 3"
git checkout --detach main git checkout --detach main
[win] [win]
# Did you create a new tag? # Hai creato una nuova etichetta?
test "$(git show v1 -s --format=%h)" = "$(git show HEAD~1 -s --format=%h)" test "$(git show v1 -s --format=%h)" = "$(git show HEAD~1 -s --format=%h)"
[actions] [actions]
@ -47,4 +47,4 @@ test "$(git show v1 -s --format=%h)" = "$(git show HEAD~1 -s --format=%h)"
[congrats] [congrats]
Well done :) Motlo bene :)

View file

@ -1,34 +1,34 @@
title = Remote Tags title = Etichette remote
cards = pull push commit-auto checkout cards = pull push commit-auto checkout
[description] [description]
When you work with remote repositories, tags are not pushed or pulled automatically. Quando lavori con un repositor remoto, le etichette non sono messe o prese automaticamente.
You can push a tag with Puoi inviare un tag con
git push <remote> <tag-name> git push <remote> <tag-name>
Or all tags with: O tutti i tags con
git push <remote> --tags git push <remote> --tags
Deleting tags on your remote works with: Rimuovere i tags nel repository remoto con
git push <remote> --delete <tag-name> git push <remote> --delete <tag-name>
You can also sync Puoi anche sincronizzare
git fetch <remote> --prune --prune-tags git fetch <remote> --prune --prune-tags
Add a tag named "v2" to the last commit and push it to the remote. Also pull the v1 tag to your local repository. Aggiungere un nome di tag "v2" nell'ultimo commit ed inviarlo nel remoto, anche prendere il tag "v1" in quello locale.
[setup yours] [setup yours]
git checkout main git checkout main
git checkout main git checkout main
echo "toothbrush sharing" > project-ideas echo "Condivisione dello spazzolino" > project-ideas
git add . git add .
git commit -m "First idea" git commit -m "Prima idea"
echo "Is my phone upside down? App" >> project-ideas echo "Il mio telefono è sottosopra? App" >> project-ideas
git commit -am "Another idea" git commit -am "Un'altra idea"
@ -45,14 +45,14 @@ git branch -u friend/main main
git tag v1 HEAD~1 git tag v1 HEAD~1
[win] [win]
# v1 tag in your repo # v1 tag nel tuo repo
test "$(git show v1 -s --format=%h)" = "$(git show HEAD~1 -s --format=%h)" test "$(git show v1 -s --format=%h)" = "$(git show HEAD~1 -s --format=%h)"
# v2 tag in your repo # v2 tag nel tuo repo
test "$(git show v2 -s --format=%h)" = "$(git show HEAD -s --format=%h)" test "$(git show v2 -s --format=%h)" = "$(git show HEAD -s --format=%h)"
[win friend] [win friend]
# v2 tag in the remote # v2 tag nel remoto
test "$(git show v2 -s --format=%h)" = "$(git show HEAD -s --format=%h)" test "$(git show v2 -s --format=%h)" = "$(git show HEAD -s --format=%h)"

View file

@ -1,13 +1,13 @@
title = Removing tags title = Rimuovere etichette
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
You added way too many tags? No prob! Delete them with Hai aggiunto molte ectichette? Non c'è problema! Cancellali con
git tag -d <tag-name> git tag -d <tag-name>
Remove all tags in this repo! Rimuovi tutti i tag in questo repository!
--- ---
tipp1 tipp1
@ -18,20 +18,20 @@ tipp3
[setup] [setup]
echo "event 1" > feature-list echo "event 1" > elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 1" git commit -m "Aggiunta caratteristica 1"
echo "event 2" >> feature-list echo "event 2" >> elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 2" git commit -m "Aggiunta caratteristica 2"
echo "event 3" >> feature-list echo "event 3" >> elenco-caratteristiche
git add . git add .
git commit -m "Adding feature 3" git commit -m "Aggiunta caratteristica 3"
git tag v1 HEAD~2 git tag v1 HEAD~2
git tag v2 HEAD~1 git tag v2 HEAD~1
@ -41,7 +41,7 @@ git checkout --detach main
[win] [win]
# Did you remove all tags? # Hai riosso tutte le etichette?
test "$(git tag -l | wc -l)" -eq 0 test "$(git tag -l | wc -l)" -eq 0
[actions] [actions]
@ -50,4 +50,4 @@ test "$(git tag -l | wc -l)" -eq 0
[congrats] [congrats]
Well done :) Molto bene :)