7. Sistema di controllo di versione distribuito.
Gratuito ed Open Source.
Inizialmente progettato e sviluppato da Linus Torvalds per il
kernel di Linux.
8. REPOSITORY
Sistema di gestione del versionamento del codice. Per git può
essere remoto o locale, ma ogni utente ha almeno la propria
repository locale equivalente alla cartella contenente i file del
progetto.
19. PULL
Download dei commit presenti sulla repository remota,
tipicamente effettuati da terzi. Prima di iniziare a lavorare, è
indicato fare un pull, per limitare al massimo la possibilità di
conflitti.
git pull
21. TAG
Etichetta assegnabile ad uno specifico commit, generalmente
usato per segnalare i numeri di versione rilasciati.
Linee guida su cosa usare come tag:
SEMANTIC VERSIONING
http://semver.org
31. FORK
Copia di una repository, generalmente remota, generalmente
fatta per poter guadagnare privilegi di scrittura. Molto utile
per fare pull requests in progetti open source.
32. SUBMODULE
Sotto progetto git nidificato, con remote differente, utile per
poter gestire dipendenze del progetto principale.
33. PULL REQUEST
Proposta di cambiamento, composta da uno o più commit,
residenti su una fork del progetto principale. Se accettata è il
modo di contribuire a progetti open source su GitHub.
47. COMMIT
Prima di ogni commit, vedere quali file sono stati modificati e
fare il revert delle modifiche inutili.
I commit sono più puliti ed è possibile evitare grossolani
errori.
48. DESCRIZIONI
SIGNIFICATIVE
Se usate un sistema di ticket, riportate il numero #123, ma
anche un breve testo che sarà ricercabile. Sia GitHub che
GitLab permettono di citare automaticamente issues nei
commit e viceversa.
49. BRANCHARE
Ogni nuova funzione ha la sua branch, che nasce e muore nel
tempo dello sviluppo della funzione. Non necessariamente
devo pusharla sulla repository remota.
50. MERGIARE
Con attenzione e giusta frequenza.
Faccio checkout della branch su cui voglio finiscano le
modifiche e mi tiro il commit dell'altra branch.
51. CONFLITTI
Mine: scelgo la versione della branch su cui sono.
Theirs: scelgo la versione dell'altra branch.
Manuale: tool esterno (editor di testo) e poi marchio come
risolto.
NIENTE PANICO
53. SUBMODULES
Tutto il codice condiviso tra più progetti, se in forma di
sorgente, deve avere la propria repository ed essere incluso
come submodulo, a meno che la piattaforma su cui state
sviluppando non preveda altri sistemi di dipendenza (gems,
cocoapods, npms, ecc).
58. CONSIGLIO
GitHub per i progetti che coinvolgono terzi, open source e con
deploy automatico (capistrano, chef, puppet, ecc).
GitLab per progetti interni su macchina locale.
62. IDE
La maggior parte degli IDE include direttamente il supporto a
git, ma solo con le funzioni base.
È il miglior modo per usare git male.
63. ESEMPI
Creazione repository su GitHub;
Clono il progetto sulla macchina locale;
Faccio un commit iniziale;
Faccio una branch;
Faccio una modifica;
Faccio un commit;
Faccio il merge;
Altra branch;
Genero un conflitto;
Risolvo il conflitto;
Faccio il push.