Alla ricerca del commit perduto

Una delle certezze che si ha usando git è che quando qualcosa è stato salvato con un commit è scolpito nella pietra e quasi impossibile da perdere. Maneggiando con GitKraken ho fatto degli errori e ho fatto dei passaggi che mi hanno portato a perdere un branch. Era un branch di esperimenti con cose di poco conto ma ci tenevo a recuperare il lavoro svolto.

Col comando

git reflog

ho ottenuto la cronologia di tutte le ultime operazioni fatte con un risultato di questo tipo:

image

Ho individuato (in rosso) il commit di mio interesse: 8cfba14.

A questo punto il gioco è fatto:

git checkout 8cfba14

ho controllato il contenuto e ovviamente c’era tutto, ora basta fare un nuovo branch

git branch wallpaper 8cfba14

così da avere un comodo riferimento a quel commit come era prima dei miei errori.

Le interfacce grafiche costruite sopra git sono molto comode per la routine quotidiana e hanno spesso un look accattivante e generano un albero della cronologia molto chiaro. Tuttavia a volte non si capisce bene cosa facciano sotto il cofano e fanno cose inaspettate.image

La riga di comando permette un controllo totale, chirurgico. Penso che conoscere bene la riga di comando di git sia uno dei fondamenti da cui non possiamo prescindere perché significa essere in grado di salvaguardare/recuperare/manutenzionare le preziose ore di lavoro che ogni giorno dedichiamo alla nostra passione. È la nostra cassaforte con super poteri di viaggio nel tempo, funzioni di ricerca (lo sapevate git grep?) e molto altro. Vale la pena conoscerla a fondo.

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo di WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione /  Modifica )

Google photo

Stai commentando usando il tuo account Google. Chiudi sessione /  Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione /  Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione /  Modifica )

Connessione a %s...

Questo sito utilizza Akismet per ridurre lo spam. Scopri come vengono elaborati i dati derivati dai commenti.