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.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s