oh-my-git/levels/it/changing-the-past/rebase

87 lines
2 KiB
Text
Raw Normal View History

2020-10-22 17:27:54 +02:00
title = Rebasing
cards = checkout commit-auto reset-hard rebase
2020-10-22 16:19:22 +02:00
[description]
2021-10-07 11:53:41 +02:00
Okay - Salta vuori che risparmiare tempo al mattino utilizzando universi paralleli è contro il regolamento dell'International Time Travel Association. Dovrai svolgere i tuoi compiti in sequenza dopotutto.
2021-10-07 11:53:41 +02:00
Vedi la carta "rebase"? Quando la trascini su di un commit, copierà dopo di esso tutti gli eventi della linea temporale su cui ti trovi! In questo modo crei una linea temporale chiara e pulita dove visiti tutti e tre i negozzi.
2020-10-22 17:27:54 +02:00
2021-09-17 11:40:31 +02:00
Nuovamente, vogliamo rendere questa la nostra realtà di base - il ramo "main" dovrebbe puntare a quella linea temporale!
[setup]
2021-09-17 11:40:31 +02:00
echo "Non hai una baguette.
2021-09-17 11:40:31 +02:00
Non hai caffe.
2021-09-17 11:40:31 +02:00
Non hai una ciambella." > you
git add .
2021-09-17 11:40:31 +02:00
git commit -m "L'inizio"
git checkout -b baguette main
2021-09-17 11:40:31 +02:00
echo "Hai una baguette.
2021-09-17 11:40:31 +02:00
Non hai caffe.
2021-09-17 11:40:31 +02:00
Non hai una ciambella." > you
git add .
2021-09-17 11:40:31 +02:00
git commit -m "Compri una baguette"
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
echo "Mangi una baguette.
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
Non hai caffe.
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
Non hai una ciambella." > you
git add .
2021-09-17 11:40:31 +02:00
git commit -m "Mangi la baguette"
git checkout -b coffee main
2021-09-17 11:40:31 +02:00
echo "Non hai una baguette.
2021-09-17 11:40:31 +02:00
Hai del caffe.
2021-09-17 11:40:31 +02:00
Non hai una ciambella." > you
git add .
2021-09-17 11:40:31 +02:00
git commit -m "Compri un pò di caffe"
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
echo "Non hai una baguette.
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
Hai bevuto caffe.
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
Non hai una ciambella." > you
git add .
2021-09-17 11:40:31 +02:00
git commit -m "Bevi il caffe"
git checkout -b donut main
2021-09-17 11:40:31 +02:00
echo "Non hai una baguette
2021-09-17 11:40:31 +02:00
Non hai caffe.
2021-09-17 11:40:31 +02:00
Hai una ciamebella." > you
git add .
2021-09-17 11:40:31 +02:00
git commit -m "Compri una ciambella"
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
echo "Non hai una baguette.
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
Non hai caffe.
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
Mangi una ciambella." > you
git add .
2021-09-17 11:40:31 +02:00
git commit -m "Mangi la ciambella"
2020-10-29 20:02:43 +01:00
git checkout --detach main
[win]
2021-09-17 11:40:31 +02:00
# Ordina le tre ramificazioni in una e muovi il riferimento al ramo principale
2021-10-07 20:48:24 +02:00
{ git show main:you | grep "Mangi.*baguette"; } && { git show main:you | grep "bevuto.*caffe"; } && { git show main:you | grep "Mangi.*ciambella"; } && { test "$(git log main --oneline | wc -l)" -eq 7; }
2020-10-22 17:27:54 +02:00
[congrats]
2021-09-17 11:40:31 +02:00
Nota come gli altri commit e linee temporali siano ancora li - se qualcosa va storto, puoi ancora tornare in dietro.
2020-10-29 20:02:43 +01:00
2021-09-17 11:40:31 +02:00
E' davvero difficile *distruggere* le cose con la tua macchina del tempo.