Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
#DevFest16
Intro to
Alfonso Piscitelli
Software Developer
@piscitelli91
#DevFest16#DevFest16
Programma
● Introduzione
○ Team di sviluppo
○ Problematiche da risolvere
○ Version of control
○ GIT
●...
#DevFest16#DevFest16
Introduzione
#DevFest16
Un CLASSICO team di sviluppo
Caricate
sul server!!
#DevFest16
U CLASSICO team di sviluppo..
Un attimo, sto
risolvendo un
bug urgente
Sto
facendo
una
modifica
Meglio
cazzeggi...
#DevFest16
Hei, c’è nessuno? Sto
facendo una modifica
Fermi tutti!
Adesso ti mando le mie
modifiche via mail
Ci sono!
Un M...
#DevFest16
SERVE QUALCOSA CHE..
#DevFest16
Permetta di lavorare insieme sullo stesso
progetto software
SERVE QUALCOSA CHE..
#DevFest16
Permetta di lavorare insieme sullo stesso FILE
SERVE QUALCOSA CHE..
#DevFest16
Dia visione dell’evoluzione del progetto
SERVE QUALCOSA CHE..
#DevFest16
Permetta di tornare ad un punto precedente
dello sviluppo
SERVE QUALCOSA CHE..
#DevFest16
Permetta di effettuare una diramazione del
progetto
SERVE QUALCOSA CHE..
#DevFest16
Permetta di lavorare insieme sullo stesso progetto
software
Permetta di lavorare insieme sullo stesso FILE
Dia ...
#DevFest16
VCS - Version Control System
Inizia a scrivere un
documento
Modifica una sezione del
documento
Si accorge di av...
#DevFest16
Tornare indietro nel tempo
Inizio Modifica
1
Modifica
2
Modifica
n
Modifica
n+1
#DevFest16
Tornare indietro nel tempo
Inizio Modifica
1
Modifica
2
Modifica
n
Modifica
n+1
#DevFest16
Tornare indietro nel tempo
Inizio Modifica
1
Modifica
2
Modifica
n
#DevFest16#DevFest16
GIT
#DevFest16
● Sistema di controllo di versione (VCS)
● VCS distribuito
● VCS particolarmente efficiente e scalabile
● Creat...
#DevFest16
● Un VCS gestisce la collaborazione al progetto
● Per monitorare lo stato del progetto
● Per poter tornare indi...
#DevFest16
In poche parole...
#DevFest16
Per gestire meglio il tuo progetto software
#DevFest16
Inoltre, sempre più aziende usano GIT
Perché usare un VCS come GIT?
#DevFest16#DevFest16
Repository Gratuiti
#DevFest16#DevFest16
Getting Started
Prendiamo confidenza con GIT
#DevFest16#DevFest16
Repository
Il repository nei VCS è la scatola
che contiene tutte le
informazioni del nostro progetto
...
#DevFest16#DevFest16
Creazione di un Repository GIT
Per creare un repository su GIT apriamo un terminale e digitiamo:
git ...
#DevFest16#DevFest16
Creazione di un Repository GIT
Da questo momento GIT monitorerà il repository, in attesa di cambi di ...
#DevFest16#DevFest16
Aggiunta di un file al Repository
E lanciamo il comando git status. Git riconoscerà l’aggiunta del nu...
#DevFest16#DevFest16
Commit ?
● Punto di avanzamento del progetto
● Un commit rappresenta un passo avanti nel progetto
● R...
#DevFest16#DevFest16
Aggiungere file al commit
Per aggiungere un file al commit digitiamo il comando:
git add nomefile.ext...
#DevFest16#DevFest16
Il primo commit non si scorda mai
git commit -m ‘descrizione del commit’
#DevFest16#DevFest16
Il primo commit non si scorda mai
git commit -m ‘descrizione del commit’
#DevFest16
Il primo commit non si scorda mai
Git config
user.name
= Alfonso
Git config
user.email =
aaa@bbb.cc
Chi Sei?
#DevFest16#DevFest16
Il primo commit non si scorda mai
git commit -m ‘descrizione del commit’
#DevFest16
Sincronizzazione remota: pull & pushSincronizzazione remota: pull & push
#DevFest16#DevFest16
Sincronizzazione remota: pull & push
$ git push
$ git pull
Per sincronizzare il proprio repository da...
#DevFest16#DevFest16
Cronologia dei commit
git log
#DevFest16#DevFest16
Branch
Diramazioni di un progetto
#DevFest16#DevFest16
Cosa è un branch
● Ogni volta che facciamo un commit salviamo lo stato del progetto in quel momento
●...
#DevFest16#DevFest16
Cosa è un branch
cmaster c c
c c cdev
c
Da questo momento i due rami hanno
vita indipendente.
#DevFest16#DevFest16
Perché un branch?
● Per lavorare autonomamente ad una parte del progetto
● Per lavorare ad una nuova ...
#DevFest16#DevFest16
Creazione di un branch
In git abbiamo due modi per creare un branch.
● Creare un branch partendo dal ...
#DevFest16#DevFest16
Creazione di un branch
Per creare un branch partendo dal punto attuale del progetto usiamo il comando...
#DevFest16#DevFest16
Creazione di un branch
#DevFest16#DevFest16
Creazione di un branch
Per creare un branch partendo da un punto (commit) preciso del progetto,
invec...
#DevFest16#DevFest16
Creazione di un branch
Per creare un branch partendo da un punto (commit) preciso del progetto,
invec...
#DevFest16#DevFest16
Creazione di un branch
A questo punto, come prima, utilizziamo il comando git checkout, con il
parame...
#DevFest16#DevFest16
Creazione di un branch
A questo punto, come prima, utilizziamo il comando git checkout, con il
parame...
#DevFest16#DevFest16
Grazie per
l’attenzione
@piscitelli91
Upcoming SlideShare
Loading in …5
×

Introduzione a Git

170 views

Published on

Slide del seminario "Intro to Git" tenuto in occasione della Google Dev Fest Campania il 14 ottobre 2016. Si parlerà di come inizializzare un Repository, della configurazione per fare il primo commit e delle ramificazioni, i branch.

Published in: Technology
  • Be the first to comment

Introduzione a Git

  1. 1. #DevFest16 Intro to Alfonso Piscitelli Software Developer @piscitelli91
  2. 2. #DevFest16#DevFest16 Programma ● Introduzione ○ Team di sviluppo ○ Problematiche da risolvere ○ Version of control ○ GIT ● Getting started on GIT ○ Inizializzare Repository ○ Aggiungere file al repo ○ Il primo commit ○ Sincronizzazione remota pull & push ○ Branch in GIT
  3. 3. #DevFest16#DevFest16 Introduzione
  4. 4. #DevFest16 Un CLASSICO team di sviluppo Caricate sul server!!
  5. 5. #DevFest16 U CLASSICO team di sviluppo.. Un attimo, sto risolvendo un bug urgente Sto facendo una modifica Meglio cazzeggiare su Facebook va! Datemi un secondo! Un CLASSICO team di sviluppo
  6. 6. #DevFest16 Hei, c’è nessuno? Sto facendo una modifica Fermi tutti! Adesso ti mando le mie modifiche via mail Ci sono! Un MODERNO team di sviluppo
  7. 7. #DevFest16 SERVE QUALCOSA CHE..
  8. 8. #DevFest16 Permetta di lavorare insieme sullo stesso progetto software SERVE QUALCOSA CHE..
  9. 9. #DevFest16 Permetta di lavorare insieme sullo stesso FILE SERVE QUALCOSA CHE..
  10. 10. #DevFest16 Dia visione dell’evoluzione del progetto SERVE QUALCOSA CHE..
  11. 11. #DevFest16 Permetta di tornare ad un punto precedente dello sviluppo SERVE QUALCOSA CHE..
  12. 12. #DevFest16 Permetta di effettuare una diramazione del progetto SERVE QUALCOSA CHE..
  13. 13. #DevFest16 Permetta di lavorare insieme sullo stesso progetto software Permetta di lavorare insieme sullo stesso FILE Dia visione dell’evoluzione del progetto Permetta di tornare ad un punto precedente dello sviluppo Permetta di effettuare una diramazione del progetto SERVE QUALCOSA CHE..
  14. 14. #DevFest16 VCS - Version Control System Inizia a scrivere un documento Modifica una sezione del documento Si accorge di aver modificato la sezione sbagliata
  15. 15. #DevFest16 Tornare indietro nel tempo Inizio Modifica 1 Modifica 2 Modifica n Modifica n+1
  16. 16. #DevFest16 Tornare indietro nel tempo Inizio Modifica 1 Modifica 2 Modifica n Modifica n+1
  17. 17. #DevFest16 Tornare indietro nel tempo Inizio Modifica 1 Modifica 2 Modifica n
  18. 18. #DevFest16#DevFest16 GIT
  19. 19. #DevFest16 ● Sistema di controllo di versione (VCS) ● VCS distribuito ● VCS particolarmente efficiente e scalabile ● Creato da Linus Torvalds GIT?
  20. 20. #DevFest16 ● Un VCS gestisce la collaborazione al progetto ● Per monitorare lo stato del progetto ● Per poter tornare indietro nelle versioni in caso di problemi Perché usare un VCS come GIT?
  21. 21. #DevFest16 In poche parole...
  22. 22. #DevFest16 Per gestire meglio il tuo progetto software
  23. 23. #DevFest16 Inoltre, sempre più aziende usano GIT Perché usare un VCS come GIT?
  24. 24. #DevFest16#DevFest16 Repository Gratuiti
  25. 25. #DevFest16#DevFest16 Getting Started Prendiamo confidenza con GIT
  26. 26. #DevFest16#DevFest16 Repository Il repository nei VCS è la scatola che contiene tutte le informazioni del nostro progetto (metadati, sorgenti ecc).
  27. 27. #DevFest16#DevFest16 Creazione di un Repository GIT Per creare un repository su GIT apriamo un terminale e digitiamo: git init
  28. 28. #DevFest16#DevFest16 Creazione di un Repository GIT Da questo momento GIT monitorerà il repository, in attesa di cambi di stato. Proviamo ad aggiungere un file
  29. 29. #DevFest16#DevFest16 Aggiunta di un file al Repository E lanciamo il comando git status. Git riconoscerà l’aggiunta del nuovo file
  30. 30. #DevFest16#DevFest16 Commit ? ● Punto di avanzamento del progetto ● Un commit rappresenta un passo avanti nel progetto ● Rende una serie di cambiamenti definitivi ● Un commit è caratterizzato da: ○ I file modificati ○ Una descrizione del commit
  31. 31. #DevFest16#DevFest16 Aggiungere file al commit Per aggiungere un file al commit digitiamo il comando: git add nomefile.ext Lanciando un git-status scopriremo che il nostro file è pronto
  32. 32. #DevFest16#DevFest16 Il primo commit non si scorda mai git commit -m ‘descrizione del commit’
  33. 33. #DevFest16#DevFest16 Il primo commit non si scorda mai git commit -m ‘descrizione del commit’
  34. 34. #DevFest16 Il primo commit non si scorda mai Git config user.name = Alfonso Git config user.email = aaa@bbb.cc Chi Sei?
  35. 35. #DevFest16#DevFest16 Il primo commit non si scorda mai git commit -m ‘descrizione del commit’
  36. 36. #DevFest16 Sincronizzazione remota: pull & pushSincronizzazione remota: pull & push
  37. 37. #DevFest16#DevFest16 Sincronizzazione remota: pull & push $ git push $ git pull Per sincronizzare il proprio repository dal server Per sincronizzare il server con i nostri commit
  38. 38. #DevFest16#DevFest16 Cronologia dei commit git log
  39. 39. #DevFest16#DevFest16 Branch Diramazioni di un progetto
  40. 40. #DevFest16#DevFest16 Cosa è un branch ● Ogni volta che facciamo un commit salviamo lo stato del progetto in quel momento ● Può essere necessario ripartire da un punto e fare altri sviluppi ● Un branch rappresenta una diramazione del progetto cmaster c c
  41. 41. #DevFest16#DevFest16 Cosa è un branch cmaster c c c c cdev c Da questo momento i due rami hanno vita indipendente.
  42. 42. #DevFest16#DevFest16 Perché un branch? ● Per lavorare autonomamente ad una parte del progetto ● Per lavorare ad una nuova feature del progetto ○ Potrei lavorare sul branch master? ○ No! Se mentre aggiungi una feature devi risolvere un bug? ● Per intervenire su un bug senza compromettere gli altri sviluppi
  43. 43. #DevFest16#DevFest16 Creazione di un branch In git abbiamo due modi per creare un branch. ● Creare un branch partendo dal punto attuale del progetto ● Creare un branch partendo da un punto (commit) preciso del progetto
  44. 44. #DevFest16#DevFest16 Creazione di un branch Per creare un branch partendo dal punto attuale del progetto usiamo il comando git branch nomeBranch Per entrare nel ramo appena creato invece, usiamo il comando git checkout git checkout nomeBranch
  45. 45. #DevFest16#DevFest16 Creazione di un branch
  46. 46. #DevFest16#DevFest16 Creazione di un branch Per creare un branch partendo da un punto (commit) preciso del progetto, invece, dobbiamo ottenere prima l’id del commit da cui vogliamo ripartire git log
  47. 47. #DevFest16#DevFest16 Creazione di un branch Per creare un branch partendo da un punto (commit) preciso del progetto, invece, dobbiamo ottenere prima l’id del commit da cui vogliamo ripartire git log Id del commit
  48. 48. #DevFest16#DevFest16 Creazione di un branch A questo punto, come prima, utilizziamo il comando git checkout, con il parametro -b. git checkout id_del_commit -b nome_branch
  49. 49. #DevFest16#DevFest16 Creazione di un branch A questo punto, come prima, utilizziamo il comando git checkout, con il parametro -b. git checkout id_del_commit -b nome_branch N.B. Git ti sposterà direttamente nel branch appena creato
  50. 50. #DevFest16#DevFest16 Grazie per l’attenzione @piscitelli91

×