Git – lo stupido gestore di contenuti
-
Upload
giulio-caccin -
Category
Software
-
view
334 -
download
0
Transcript of Git – lo stupido gestore di contenuti
2
GIULIO CACCINSviluppatore dal 2003
.NET / Java
Utilizzo Git dal 2012
Appassionato di diritti umani
3
PERCHÉ GIT?So ware libero (senza restrizioni di utilizzo)
E' uno standard de facto nel settore
Strutturato per favorire la collaborazione
4
UN PO' DI STORIAle esigenze di Linus Torvald
Veloce (in locale e in rete)DistribuitoFlessibileSicuroAvere i codici sorgenti
5
GRAFO ACICLICO DIRETTOStruttura di nodi
Percorrendo il grafo non si può mai tornare alla partenza
Nessun nodo può essere isolato
6
UN COMMIT (NON) È PER SEMPRECommit spesso, fin da subito
Ogni commit rappresenta una idea o un cambiamento
Prima del push ci si può sbizzarrire
Si può riscrivere la storia dei commit locali
8
CENTRALIZED WORKFLOWIl più vecchio metodo, si lavora solo su master
Si applicano le nuove modifiche sempre in cima alle vecchie
La storia viene mantenuta solo dai commit
EFG *EFG master / / ABCD master
9
FEATURE BRANCH WORKFLOWOgni feature viene sviluppata su un branch
Ogni branch viene innestato sul master mantenendo lastoria separata
EFG branch / \ ABC# master
10
GITFLOW WORKFLOWMaster taggato per versioni rilasciate
Develop per build non stabili
Feature branch
## branch / \ #### develop / \ ## master
11
FORKING WORKFLOWLo sviluppatore ha un repo locale e uno pubblico
Ogni repo pubblico punta allo stesso repo centrale
Un mantainer ha i diritti di scrittura sul repo principale
12
GITHUB FLOWIl più leggero: solo master e branch
Alla fine dello sviluppo si apre una pull request
Vengono implementate le modifiche
Viene prima deployato e poi mergiato in master
13
PERCHÉ LA LINEA DI COMANDO?Si possono usare tutti i comandi di Git
Permette di capire tutte le GUI più velocemente
Viene installata con tutte le GUI in tutte le piattaforme
Update più frequenti
14
GIT E WINDOWSRiga di comando semplice (CONSIGLIATO!)
Interfaccia grafica potente
Emulatore di console (da usare con git-for-windows)
https://git-for-windows.github.io/
https://www.sourcetreeapp.com/
https://conemu.github.io/
Ma la linea di comando offre alcune sorprese...
15
GIT-GUIMultipiattaforma
Pensato per gestire commit, branch e merge
Permette di fare stage selettivo di linea
16
GITKMultipiattaforma
Pensato per gestire lo storico
Visualizza il grafico dei commit
Permette di fare il blame
[bonus] gitk ‐‐follow nome‐file
18
I COMANDI PIÙ USATIgit addgit diffgit branchgit pushgit statusgit commitgit checkoutgit pullgit log
21
GIT CONFIGGestisce configurazioni per
macchina (system), utente (global) e repository (local)
Con credential.helper=manager usa le credenziali diwindows
[bonus] crea i tuoi alias
git config ‐‐global alias.grog "log ‐‐all ‐‐decorate ‐‐graph ‐‐oneline"
22
GIT STASHPermette di salvare velocemente il proprio lavoro
Lo puoi ri-applicare su qualunque branch
23
“PULL” VS “FETCH&MERGE”pull esegue in contemporanea fetch e merge
eseguiti separatamente permettono di capire cosa èsuccesso in remoto
indispensabile se si usa rebase o push --force
24
GIT TAGPermette di etichettare qualunque punto del log
Non viene condiviso se non esplicitato
Riferimento per usare altri comandi
25
GIT RESETRiporta la HEAD allo stato specificato
Usato per togliere dall’index modifiche aggiunte
Usato per cancellare commit non condivisi
27
GIT REBASEDa usare con molta attenzione
Rende più leggibile la storia
Sconsigliato in commit già condivisi
Aiuta i mantainer perchè i conflitti vengono risolti prima
28
DETACHED HEADCapita usando le GUI
Indica la working directory staccata da un branch
Aiuta a capire che si potrebbe perdere il lavoro
29
BREVE STORIA SULLA SICUREZZA
git commit a m "HeHeHe" author "Chuck Norris <[email protected]>"
Ogni commit ha un committer (account usato) e un author
In contesti dove la sicurezza è necessaria potrebbe esserenecessario usare firme GPG
31
LINK UTILILa bibbia
Imparare dai maestri
Visual cheatsheet
https://git-scm.com/book/en/v2
https://help.github.com/
http://ndpso ware.com/git-cheatsheet.html
32
DOVE HO RUBATOVideo fantastico di Lorna MitchellImportante articolo sui commitGuida sui flussi di lavoro di AtlassianIndispensabile GitHub FlowFirmate con GPG i vostri commit Git