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.
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
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. #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
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. #DevFest16
VCS - Version Control System
Inizia a scrivere un
documento
Modifica una sezione del
documento
Si accorge di aver
modificato la
sezione sbagliata
19. #DevFest16
● Sistema di controllo di versione (VCS)
● VCS distribuito
● VCS particolarmente efficiente e scalabile
● Creato da Linus Torvalds
GIT?
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?
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
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. #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
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
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. #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. #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
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. #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. #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. #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