L'obiettivo del corso è quello di insegnare le basi della gestione del ciclo di
sviluppo dei progetti software, utilizzando tecnologie come i Version Control Systems
(VCS), Git e altri.
Lezione 1 - Introduzione al corso
Argomenti:
- Motivi per studiare Gestione Progetto;
- Lo sviluppo collaborativo;
-
I Version Control Systems (VCS):
- Caratteristiche principali;
- Parole chiave (commit, branch e merge).
- Introduzione a Git.
|
Materiali
|
|
Slides della lezione
|
(link)
|
Lezione 2 - Fondamenti di Git
Argomenti:
- Cenni storici;
- Configurazione profilo utente;
- Comando
git init;
- Comando
git commit -m "[...]".
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 1 - Lo Zoo di Java
|
(link)
|
Lezione 3 - Funzioni di hash e commit
Argomenti:
- Funzioni di hash;
-
Composizione di un commit:
- Intestazione (autore, data e messaggio);
- Modifiche dei file selezionati.
-
Navigazione nello storico dei commit:
- Comando
git checkout;
- Puntatore
HEAD;
- Concetto di detached head.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 2 - La macchina del tempo
|
(link)
|
Lezione 4 - Gestione dei branch
Argomenti:
-
I branch in un VCS:
- Definizione di branch;
- Motivi per creare un branch;
- Esempio: con o senza Git?
-
I branch in Git:
- Creazione di un nuovo branch;
- Visualizzazione dei branch in un repository;
- Navigazione tra i branch;
-
Viaggio tra le dimensioni:
- Detached head;
- Regole di
add e commit;
-
L'operazione di merge:
- Definizione di merge;
- Comandi per Git Bash.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 3 - Viaggio nelle dimensioni (1)
|
(link)
|
Lezione 5 - I conflitti nei merge
Argomenti:
-
L'operazione di merge:
- Definzione;
- Comando
git merge;
- Il commit di merge.
-
I conflitti nell'operazione di merge:
- Come risolvere un conflitto;
- Gestione delle modifiche;
- Differenze tra
HEAD e branch.
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Esercizio 4 - Segreteria dell'Accademia
|
(link)
|
Lezione 6 - Git Flow (parte 1)
Argomenti:
-
Introduzione a Git Flow:
- Modello di funzionamento;
- Elenco dei vari branch.
-
I branch di Git Flow:
- Il branch
development;
- Il branch
feature/[...];
- Il branch
release/[...];
- Il branch
hotfix/[...].
|
Materiali
|
|
Slides della lezione
|
(link)
|
|
Dispensa - "Learn Git Branching"
|
(link)
|