some traductions

This commit is contained in:
Luca Canali 2021-09-14 17:03:17 +02:00
parent f98922ca5c
commit 90574216dc
10 changed files with 141 additions and 136 deletions

View file

@ -0,0 +1,5 @@
compare
new
change
reset
steps

View file

@ -1,31 +1,31 @@
title = Update files in the index title = Aggiorna i file nell'indice
cards = add commit cards = add commit
[description] [description]
When we change files, the index won't change on its own. We have to use `git add` to update the index to the changed version of the file. Quando cambiamo i files l'indice non cambia da solo. Dobbiamo usare `git add` per aggiornare l'indice della versione cambiata dei file..
Let's try that! Proviamoci!
The icons in the file browser show you when the actual file (white) and the version in the index (blue) are different, and when they are the same! Le icona nel browser dei file mostrano quando il file attuale (bianco) e la versione nell'indice (blu) sono differenti o quando sono uguali!
[win] [win]
Good! The index is sometimes also called the "staging area" - it contains exactly what ends up in the next commit when you use `git commit`! Bene! L'indice, a volte, può essere chiamato "staging are" - Contiene esattamente ciò che finisce nel prossimo commit quando usi `git commit`!
[setup] [setup]
echo "The candle is burning with a blue flame." > candle echo "La candela brucia con una fiamma blue." > candle
git add . git add .
git commit -m "The beginning" git commit -m "L'inizio"
[win] [win]
# Make a change to the candle. # Fai una modifica alla candela
test "$(git diff --name-only)" = "candle" || file -f .git/candle-changed && touch .git/candle-changed test "$(git diff --name-only)" = "candle" || file -f .git/candle-changed && touch .git/candle-changed
# Add the candle. # Aggiungi la candella.
test "$(git diff --cached --name-only)" = "candle" || file -f .git/candle-added && touch .git/candle-added test "$(git diff --cached --name-only)" = "candle" || file -f .git/candle-added && touch .git/candle-added
# Make a commit. # Fai un commit.
test "$(git diff --name-only HEAD HEAD^)" = "candle" test "$(git diff --name-only HEAD HEAD^)" = "candle"

View file

@ -1,51 +1,51 @@
title = Step by step title = Passo dopo passo
cards = checkout commit-auto cards = checkout commit-auto
[description] [description]
Welcome to today's lesson! We're going to learn how to make commits with more precision! Benvenuto nella lezione di oggi! Siamo impareremo come creare commits con più precisione!
Have a look at these two timelines. They have exactly the same outcome. But one of them makes it much easier to figure out what happened. Dai un'occhiata a queste due linee temporali. Hanno lo stesso risultato ma una di loro rende più semplice capire cosa è successo.
[win] [win]
# Right! Having each change in its own commit makes it easier to understand what's going on! Let's learn how to do that! # Pronti! Avere ogni cambiamento nel proprio commit rende più facile capire cosa sta succedendo!
git branch --show-current | grep step-by-step git branch --show-current | grep step-by-step
[setup] [setup]
echo "A small, but heavy glass ball." > ball echo "Una piccola ma pesante palla di vetro." > ball
echo "A thin book, that's standing upright." > book echo "Un sottile libro che sta in piedi." > book
echo "A candle, burning with a blue flame." > candle echo "Una candela brucia con una fiamma blue." > candle
echo "A smoke detector. It's absolutely silent." > smoke_detector echo "Un sensore di fumo. E' assolutamente silenzioso." > smoke_detector
git add . git add .
git commit -m "The beginning" git commit -m "L'inizio"
git branch -M all-at-once git branch -M all-at-once
echo "The ball is now touching the book." > ball echo "La palla adesso tocca il libro." > ball
echo "The book has fallen over." > book echo "Il libro è caduto." > book
echo "The candle has been blown out." > candle echo "La candella è stata spenta." > candle
git commit -am "The end" git commit -am "La fine"
git checkout HEAD^ git checkout HEAD^
git checkout -b step-by-step git checkout -b step-by-step
echo "The ball is now touching the book." > ball echo "La palla adesso tocca il libro." > ball
git commit -am "The ball rolls towards the book" git commit -am "La palla rotola verso il libro"
echo "The book has fallen over." > book echo "Il libro è caduto." > book
git commit -am "The book falls over" git commit -am "Il libro è caduto"
echo "The candle has been blown out." > candle echo "La candela è stata spenta." > candle
git commit -am "The book blows out the candle" git commit -am "Il libro ha spento la candela"
git checkout HEAD~3 git checkout HEAD~3
[win] [win]
# Pick the timeline that's clearer, and make the alarm go off! # Prendi la sequenza temporale più chiara e fai suonare il sensore di fumo!
git show step-by-step:smoke_detector | tail -n 1 | grep -v "absolutely silent" git show step-by-step:smoke_detector | tail -n 1 | grep -v "assolutamente silenzioso"

View file

@ -1,28 +1,28 @@
title = Add new files to the index title = Aggiungi nuovi file all'indice
cards = add commit cards = add commit
[description] [description]
So far, when we made a commit, we've always recorded the current status of all objects, right? Finora, quando abbiamo eseguito un commit abbiamo sempre registrato lo stato di tutti gli oggetti, vero?
But Git allows you to pick which changes you want to put in a commit! Ma Git ti permette di prendere i cambiamenti che voui mettere in un commit!
To learn how that works, we need to learn about the "index"! In the index, we can prepare what will be in the next commit. In this game, the index is represented by a blue aura around icons in the file browser! Per sapere come funziona, dobbiamo conoscere l'"indice"! Nell'indice, possiamo preparare ciò che sarà nel prossimo commit. In questo gioco, l'indice è rappresentato da un'aura blu attorno alle icone nel browser dei file!
Initially, the index is empty. To make a commit that contains a new file, we need to add it! Inizialmente, l'indice è vuoto. Per fare un commit che contenga un nuovo file, dobbiamo aggiungerlo!
[cli] [cli]
You can use tab completion in the terminal! Start typing a filename, then press the tab key to complete its name. This will often save you some time! Puoi usare il completamento con la tabulazione nel terminale! Inizia a scrivere un nome file e premi il tasto tab per completare il nome. Questo ti permette di risparmiare tempo!
[setup] [setup]
echo "The candle is burning with a blue flame." > candle echo "La candela brucia con una fiamma blue." > candle
[win] [win]
# Add the candle. # Aggiungi la candela.
test "$(git diff --cached --name-only)" = "candle" || file -f .git/candle-added && touch .git/candle-added test "$(git diff --cached --name-only)" = "candle" || file -f .git/candle-added && touch .git/candle-added
# Make a commit. # Crea un commit.
test "$(git ls-tree --name-only HEAD)" = "candle" test "$(git ls-tree --name-only HEAD)" = "candle"

View file

@ -1,37 +1,37 @@
title = Resetting files in the index title = Resetta i file nell'indice
cards = add reset-file commit cards = add reset-file commit
[description] [description]
See the dark shadow behind the icons? That's the version of the file in the last commit! Vedi l'ombra scura dietro le icone? Questa è la versione del file nell'ultimo commit!
For example, these candles have been blown out, and that change has been added. Per esempio, queste candele sono state spente e quella modifica è stata aggiunta!
But you decide that this was a mistake! You only want to blow out the red candle in the next commit! Ma è stato un errore! Vuoi solo spegnere al candela rossa nel prossimo commit!
If you already have updated the index to a changed file, but want to reset it, you can use `git reset`! Se hai già giornato l'indice di un file modificato, ma vuoi ripristinarlo, puoi usare `git reset`!
[setup] [setup]
echo "It's burning!" > red_candle echo "Sta bruciando!" > red_candle
echo "It's burning!" > green_candle echo "Sta bruciando!" > green_candle
echo "It's burning!" > blue_candle echo "Sta bruciando!" > blue_candle
git add . git add .
git commit -m "The beginning" git commit -m "L'inizio"
echo "It's been blown out." > red_candle echo "E' stata spenta." > red_candle
echo "It's been blown out." > green_candle echo "E' stata spenta." > green_candle
echo "It's been blown out." > blue_candle echo "E' stata spenta." > blue_candle
git add . git add .
[win] [win]
# Reset the changes in the green and blue candles! # Ripristina i cambiamenti nella candella verde e blu!
git show :green_candle | grep burning && git show :green_candle | grep burning &&
git show :blue_candle | grep burning && git show :blue_candle | grep burning &&
git show :red_candle | grep -v burning git show :red_candle | grep -v burning
# And make a commit! # E fai un commit
git show main:green_candle | grep burning && git show main:green_candle | grep burning &&
git show main:blue_candle | grep burning && git show main:blue_candle | grep burning &&
git show main:red_candle | grep -v burning git show main:red_candle | grep -v burning

View file

@ -1,28 +1,28 @@
title = Adding changes step by step title = Aggiungi modifice passo dopo passo
cards = add reset-file commit cards = add reset-file commit
[description] [description]
The index is really useful, because it allows us to be precise about which changes we want to include in each commit! L'indice è veramente utile perché ci permette di essere precisi su quali cambiamenti vogliamo includere in ogni commit!
[setup] [setup]
echo "A hammer, balancing on its handle." > hammer echo "Un martello, in equilibrio sul suo manico." > hammer
echo "A bottle, containing a clear liquid." > bottle echo "Una bottiglia contenente un liquido trasparente." > bottle
echo "A white sugar cube." > sugar_cube echo "Un cubo di zucche bianco." > sugar_cube
git add . git add .
git commit -m "The beginning" git commit -m "L'inizio"
[win] [win]
# Make changes to all three objects, to form a logical sequence of events! # Fai dei cambiamenti a tutti e tre gli oggetti per creare una sequenza logica di eventi!
test "$(git diff --name-only | wc -l)" -eq 3 || file -f .git/candle-changed && touch .git/candle-changed test "$(git diff --name-only | wc -l)" -eq 3 || file -f .git/candle-changed && touch .git/candle-changed
# Only add one of these changes! # Aggiungi solo uno dei cambiamenti!
test "$(git diff --cached --name-only | wc -l)" -eq 1 || file -f .git/candle-added && touch .git/candle-added test "$(git diff --cached --name-only | wc -l)" -eq 1 || file -f .git/candle-added && touch .git/candle-added
# And make a commit. # E fai un commit
COUNT=0 COUNT=0
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 diff --name-only $commit $commit^ | wc -l)" -eq 1; then if test "$(git diff --name-only $commit $commit^ | wc -l)" -eq 1; then
@ -32,7 +32,7 @@ done
test "$COUNT" -ge 1 test "$COUNT" -ge 1
# Make a second commit that only records a single change. # Fai un secondo commit che registri solo un singolo cambiamento.
COUNT=0 COUNT=0
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 diff --name-only $commit $commit^ | wc -l)" -eq 1; then if test "$(git diff --name-only $commit $commit^ | wc -l)" -eq 1; then
@ -42,7 +42,7 @@ done
test "$COUNT" -ge 2 test "$COUNT" -ge 2
# And a third one. # E aggiungine un terzo.
COUNT=0 COUNT=0
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 diff --name-only $commit $commit^ | wc -l)" -eq 1; then if test "$(git diff --name-only $commit $commit^ | wc -l)" -eq 1; then

View file

@ -1,47 +1,47 @@
title = Contradictions title = Contraddizioni
cards = checkout commit-auto merge reset-hard cards = checkout commit-auto merge reset-hard
[description] [description]
Sometimes, timelines will contradict each other. A volte le linee temporali si contraddicono a vicenda.
For example, in this case, one of our clients wants these timelines merged, but they ate different things for breakfast in both timelines. Per esempio, in questo caso, un nostro cliente vuole che queste linee temporali siano unite ma hanno mangiato cose differenti in entrambe le linee temporali.
Try to merge them together! You'll notice that there will be a conflict! The time machine will leave it up to you how to proceed: you can edit the problematic item, it will show you the conflicting sections. You can keep either of the two versions - or create a combination of them! Remove the >>>, <<<, and === markers, and make a new commit to finalize the merge! Prova ad unirle insieme! Noterai che c'è un conflitto! La macchina del tempo ti lascerà decidere come procedere: puoi modificare gli elementi, ti mostrerà le sezione in conflitti. Puoi scegliere una delle due versioni o creare una combinazione di esse! Rimuovi i markers >>>, <<<, e === e crea un nuovo commit per finalizare l'unione!
Let your finalized timeline be the "main" one. Lascia che la tua linea temporale definitiva sia "main".
[setup] [setup]
echo "Just woke up. Is hungry." > sam echo "Appena sveglio. Sei affamato." > sam
git add . git add .
git commit -m "The beginning" git commit -m "L'inizio"
git checkout -b pancakes git checkout -b pancakes
echo "Had blueberry pancakes with maple syrup for breakfast." > sam echo "Avevamo pancakes con mirtilli e sciroppo d'acero per colazione." > sam
git add . git add .
git commit -m "Pancakes!" git commit -m "Pancakes!"
echo " echo "
Is at work." >> sam Is at work." >> sam
git commit -am "Go to work" git commit -am "Vai a lavoro"
git checkout -b muesli main git checkout -b muesli main
echo "Had muesli with oats and strawberries for breakfast." > sam echo "Avevamo muesli con avena e fragole per colazione." > sam
git add . git add .
git commit -m "Muesli!" git commit -m "Muesli!"
echo " echo "
Is at work." >> sam Is at work." >> sam
git commit -am "Go to work" git commit -am "Vai a lavoro"
git checkout main git checkout main
[win] [win]
# Make a breakfast compromise in the 'main' branch. # Crea un compromesso nella colazione del branch "main".
git rev-parse main^ && test "$(git rev-parse main^1^^)" = "$(git rev-parse main^2^^)" git rev-parse main^ && test "$(git rev-parse main^1^^)" = "$(git rev-parse main^2^^)"
[congrats] [congrats]
Yum, that sounds like a good breakfast! Yum, questa sembra una buona colazione!

View file

@ -1,82 +1,82 @@
title = Merging timelines title = Unire le linee temporali
cards = checkout commit-auto merge cards = checkout commit-auto merge
[description] [description]
Here's a trick so that you can sleep a bit longer: just do all your morning activities in parallel universes, and then at the end, merge them together! Ecco un trucco per domire un pò più a lungo: fai tutte le tue attività, in universi paralleli, e poi uniscile!
[setup] [setup]
echo "You do not have a baguette. echo "Non hai una baguette.
You do not have coffee. Non hai caffe.
You do not have a donut." > you Non hai una ciambella." > you
git add . git add .
git commit -m "The Beginning" git commit -m "L'inizio"
echo "You have a baguette. echo "Hai una baguette.
You do not have coffee. Non hai caffe.
You do not have a donut." > you Non hai una ciambella." > you
git add . git add .
git commit -m "You buy a baguette" git commit -m "Compri una baguette"
echo "You ate a baguette. echo "Mangi una baguette.
You do not have coffee. Non hai caffe.
You do not have a donut." > you Non hai una ciambella." > you
git add . git add .
git commit -m "You eat the baguette" git commit -m "Mangi la baguette"
git checkout HEAD~2 git checkout HEAD~2
echo "You do not have a baguette. echo "Non hai una baguette.
You have coffee. Hai caffe.
You do not have a donut." > you Non hai una ciambella." > you
git add . git add .
git commit -m "You buy some coffee" git commit -m "Compri un pò di caffe"
echo "You do not have a baguette. echo "Non hai una baguette.
You drank coffee. Bevi caffe.
You do not have a donut." > you Non hai una ciambella." > you
git add . git add .
git commit -m "You drink the coffee" git commit -m "Bevi il caffe"
git checkout HEAD~2 git checkout HEAD~2
echo "You do not have a baguette. echo "Non hai una baguette.
You do not have coffee. Non hai caffe.
You have a donut." > you Hai una ciambella." > you
git add . git add .
git commit -m "You buy a donut" git commit -m "Compri una ciambella"
echo "You do not have a baguette. echo "Non hai una baguette.
You do not have coffee. Non hai caffe.
You ate a donut." > you Mangi una ciambella." > you
git add . git add .
git commit -m "You eat the donut" git commit -m "Mangi la ciambella"
git checkout --detach git checkout --detach
git branch -D main git branch -D main
[win] [win]
# Build a situation where you consumed a baguette, a coffee, *and* a donut. # Crea una situazione dove consumi una baguette, un caffe e una ciambella.
{ git show HEAD:you | grep "You ate.*baguette"; } && { git show HEAD:you | grep "You drank.*coffee"; } && { git show HEAD:you | grep "You ate.*donut"; } { git show HEAD:you | grep "Mangi.*baguette"; } && { git show HEAD:you | grep "Bevi.*coffe"; } && { git show HEAD:you | grep "Mangi.*donut"; }
# Be on a merge commit. # E' un commit di unione.
test "$(git log --pretty=%P -n 1 HEAD | wc -w)" -ge 2 test "$(git log --pretty=%P -n 1 HEAD | wc -w)" -ge 2
[congrats] [congrats]
I wonder if you're more relaxed when you *sleep* in parallel timelines... Mi chiedo se sei più rilassato quando *dormi* in linee temporali parallele...

View file

@ -1,47 +1,47 @@
title = Friend title = Amico
cards = pull push commit-auto checkout cards = pull push commit-auto checkout
[description] [description]
Your friend added another line to your essay! Get it, add a third one and send it to them! Il tuo amico ha aggiunto un'altra linea alla tua tesi! Prendilo, aggiungine un'altra e reinvialo a loro!
Take turns until you have five lines! A turno fino a che non ti ritrovi ad avere cinque linee!
[setup yours] [setup yours]
echo "Line 1" > essay echo "Linea 1" > essay
git add . git add .
git commit -m "One line" git commit -m "Una linea"
git push -u friend main git push -u friend main
[setup friend] [setup friend]
git checkout main git checkout main
echo "Line 2, gnihihi" >> essay echo "Linea 2, gnihihi" >> essay
git commit -am "Another line" git commit -am "Un'altra linea"
[actions friend] [actions friend]
if test "$(git log --oneline | wc -l)" -eq 3; then if test "$(git log --oneline | wc -l)" -eq 3; then
git reset --hard main # Necessary because the working directory isn't updated when we push to the friend. git reset --hard main # Necessario perché la directory di lavoro non è aggiornata fintanto che non viene inviata all'amico
echo "Line 4, blurbblubb" >> essay echo "Linea 4, blurbblubb" >> essay
git commit -am "Final line" git commit -am "Linea finale"
hint "Oh nice, I added a fourth line!" hint "Oh bene, Ho aggiunt la quarta linea!"
fi fi
[win] [win]
# Got the second line from your friend # Ricevuto la seconda linea dal tuo amico.
git show HEAD:essay | grep gnihihi git show HEAD:essay | grep gnihihi
# Got the fourth line from your friend. # Ricevuto la quarta linea dal tuo amico.
git show HEAD:essay | grep blurbblubb git show HEAD:essay | grep blurbblubb
[win friend] [win friend]
# The friend got a third line from you # L'amico ha ricevuto la terza linea da te.
test "$(git show HEAD:essay | wc -l)" -ge 3 test "$(git show HEAD:essay | wc -l)" -ge 3
# The friend got a fifth line from you # L'amico ha ricevuto la quinta linea da te.
test "$(git show HEAD:essay | wc -l)" -ge 5 test "$(git show HEAD:essay | wc -l)" -ge 5

View file

@ -1,33 +1,33 @@
title = Problems title = Problemi
cards = checkout add pull push commit-auto merge cards = checkout add pull push commit-auto merge
[description] [description]
Both you and your friend have been working on the file, and want to sync up! Entrambi, tu ed il tuo amicp, avete lavorato sullo stesso file e volete sincronizare!
[setup yours] [setup yours]
echo "The bike shed should be ???" > file echo "Il capannone delle bici dovrebbe essere ???" > file
git add . git add .
git commit -m "initial" git commit -m "inizio"
git push -u friend main git push -u friend main
echo "The bike shed should be green" > file echo "Il capannone delle bici dovrebbe essere verde" > file
[setup friend] [setup friend]
git checkout main git checkout main
echo "The bike shed should be blue" > file echo "Il capannone delle bici dovrebbe essere blue" > file
git commit -a -m "friends version" git commit -a -m "versione dell'amico"
[win] [win]
# Commit your local changes. # Invia le tue modifiche locali.
test "$(git status -s)" = "" test "$(git status -s)" = ""
[win friend] [win friend]
# Look at your friend's suggestion, make a compromise, and push it back. # Quarda il suggerimento dell'amico, fai un compromesso e rimandalo in dietro.
git rev-parse main^ && test "$(git rev-parse main^1^)" = "$(git rev-parse main^2^)" git rev-parse main^ && test "$(git rev-parse main^1^)" = "$(git rev-parse main^2^)"