= Laboratorio 2 - Git = [[PageOutline]] == 1. esercizio == * [http://learngitbranching.js.org/?NODEMO Learn Git Branching] Tutorial interattivo Svolgere almeno i livelli `mixed1` `mixed2` `mixed3` `advanced1` `remote8` (dando il comando `level mixed1` ecc.) L'ambiente di configuration management è totalmente simulato: * `git commit` crea un nuovo commit (gli artifact non sono simulati) * `git clone` duplica il repository (che ha il ruolo di repo "remoto", in qualche modo "al contrario" del vero clone, che duplica un repo remoto localmente) * `git fakeTeamwork 42` aggiunge 42 commit alla copia remota * gli altri comandi quelli tradizionali di git (non tutti sono simulati, in genere hanno solo poche opzioni) Altri comandi utili: * `reset` ricomincia il livello * `undo` annulla il comando precedente == 2. esercizio == Ora lavoriamo con il vero git. Ricostruire il seguente repository (gli hash degli oggetti blob e tree devono corrispondere): [[Image(es1.png)]] == 3. esercizio == * Scaricare il file [attachment:es-gitflow.tgz] * Dare il comando `tar xzf es-gitflow.tgz` che scompatta un repository gitflow dentro alla directory `es-gitflow`. * Entrare in tale repository e dare i comandi opportuni affinché alla fine: - siano state chiuse tutte le feature aperte (potete considerarle come completate) - siano state fatte due release (la prima comprendente le feature il cui nome inizia per 'A' e la seconda con le altre) - il grafo finale dei commit non presenti apparenti sovrapposizioni temporali di sviluppi delle feature La figura riporta schematizzata la situazione iniziale. [[Image(es2.png)]]