Git
Non c'entra niente con rust ma lo abbiamo inserito a tradimento per darvi comunque una spolveratina (quando si lavora in più persone sullo stesso codice è fondamentale).
Quindi, git è un "software per il controllo delle versioni", e in particolare controlla le varie versioni dei file, e aiuta a invertire cambiamenti dannosi, e ad unire versioni diverse degli stessi file.
Esempio: stiamo tutti insieme e allegramente lavorando all'orto, magari io e Fabio stiamo entrambi lavorando sullo stesso Cargo.toml. Fabio aggiunge una dipendenza e io ne aggiungo un altra. Ognuno di noi salva le proprie modifiche, e dopo un po' decidiamo di unirle (ad esempio io ho lavorato ai motori e lui al planner). Però ci sono due versioni diverse dello stesso file, come devono essere unite?
Vocabolario
Commit
salvataggio dei file allo stato attuale, particella elementare di git
Branch
serie di commit (e quindi di modifiche). Ad esempio su una repository possono esserci più branch, ognuno per una funzionalità che qualcuno sta implementando. Quando è soddisfatto dei risultati fa un merge
Merge
Unire due branch in uno solo, risolvendo eventuali conflitti (auspicabilmente in automatico).
Repository
Un insieme di branch, commit ecc. Può essere in locale o remota
Github
Non è la stessa cosa di git. Git è "il come" vengono gestite le repository. Github è una piattaforma dove si possono pubblicare e gestire repository.
Comandi
git clone <repository>
hey, scaricami questa repository git e mettimela in questa cartellagit add .
guarda cosa ho modificato in questa cartella, e tienilo pronto per la prossima commitgit commit -m "messaggio"
prendi tutte le modifiche registrate, e salvale in una commit (fatelo spesso)git pull
se ci sono modifiche sull'origine di questa repo, scaricale e cerca di unire alle mie modifiche localigit push
carica le mie commit locali sul branch remotogit checkout <branch>
cambia branchgit branch <nome branch>
crea nuovo branch