Un commit è un'istantanea (snapshot) dello stato
di un repository in un determinato momento
Un repository è quindi un insieme di commit
in ordine temporale
Per prima cosa è necessario dire a git
quali file includere in questo commit
git add file1.txt file2.json
Ma cosa è cambiato?
git status
On branch master
No commits yet
Changes to be committed:
(use "git rm --cached <file>..." to unstage)
new file: file1.txt
new file: file2.json
Ma cosa è cambiato?
Git ha copiato i files nella staging area
Ora i files sono pronti per essere inclusi in un commit
N.B. I files sono stati copiati altrove, se li modifico ulteriormenteCreiamo effettivamente il commit
git commit
Si aprirà cosi il nostro editor di testo predefinito,
nel quale dovremo scrivere un breve messaggio
nella prima riga da associare al commit
Salviamo il file di testo e il commit è pronto
N.B. di default l'editor di testo che verrà usato in ambiente Linux sarà vi o vim, per modificarloMa cosa è successo?
git log
commit aa581d11d4caed7084cd8114d2454d9380acd869 (HEAD -> master)
Author: il_mio_nome <mia_mail@poul.org>
Date: Sat Aug 31 01:56:49 2019 +0200
Questo è il mio primo commit
Git log permette di visualizzare
tutti i commit che fanno parte del repository
git commit -m "Questo è il mio primo commit"
Con questa sintassi preverremmo
l'apertura dell'editor di testo,
fornendo il messaggio via linea di comando
Tutti questi elementi concorrono nella creazione
della firma (hash) del commit
Ogni commit contiene l'hash di quello precedente
⇓
Modifiche a vecchi commit sono (generalmente) proibite
e facilmente individuabili
Una volta recuperato l'hash del commit
al quale vogliamo tornare
git reset \-\-hard {target_hash}
N.B. non è necessario tutto l'hash ma è sufficiente la parte iniziale