Revisionare, tracciare, collaborare
Version control con
by fales
1 Version control
Motivazione
Requisiti
Applicazioni
Esempi
2 git - Introduzione
Perché git
Un po’ di storia
Princìpi
3 git - Funzionamento
Repository
Commit
Branch
History
4 git - CLI
Considerazioni iniziali
5 git - Demo
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Motivazione
Lo realizzazione di un’opera d’ingegno
(programma, libro, opera architettonica) è
un processo iterativo, e collaborarivo
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Requisiti
Le problematiche che ci si trova ad affrontare sono:
Gestire le varie versioni, o revisioni
Tenere traccia delle singole modifiche
Assicurarsi che tutti gli autori abbiano sempre a disposizione
l’ultima versione
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Applicazioni
Codice sorgente
Documentazione
Libri / Pubblicazioni
Progetti ingegneristici
Lungometraggi animati
...
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Esempi
CVS / SVN
Mercurial
Bitkeeper
Perforce
git
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Introduzione a git
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Perché git
Open Source
Distribuito
Veloce
Design semplice
Pensato per la collaborazione (sviluppo parallelo)
In grado di gestire progetti di grandi dimensioni come il kernel
Linux
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Un po’ di storia
Creato da Linus Torvalds nel 2005 per il kernel Linux
Prendendo come riferimento Bitkeeper sulle cose da fare
Prendendo come riferimento CVS sulle cose da NON fare
Da alcuni anni mantenuto da Junio Hamano (濱野 純)
For the first 10 year of kernel maintenance we literally used tarball and patches, which
is a much superior source control management than CVS - Linux Torvalds
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Princìpi
–fast-version-control
–everything-is-local
–distributed-even-if-your-workflow-isnt
–local-branching-on-the-cheap
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Funzionamento di git
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Repository
È una cartella contenente
tutte le informazioni di
cui git ha bisogno.
(cartella .git/)
Questa cartella può
trovarsi su un server
remoto.
git è distribuito, quando si
scaricano le informazioni
git da remoto si crea una
copia locale e completa.
Centralizzato vs Distribuito
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Commit
Un commit è fondamentalmente l’operazione con cui si crea
una nuova versione, o revisione.
Può essere visto come una modifica rispetto alla versione
precendente (altri)
Oppure come il salvataggio dello stato attuale del sistema (git)
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Commit - Altri VCS
Le versioni sono gestite come differenze sequenziali rispetto alla verione precente
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Commit - git
Le versioni sono gestite come snapshots, fotografie del contenuto dei file ad un dato momento
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Commit - Workflow
Modifichi la working directory
Fai lo stage dei file, aggiungendo
uno snapshot alla staging area.
Fai il commit, che fa uno
snapshot permanente della
staging area nel repository (.git)
Modified = File modificato
Staged = File modificato ed aggiunto alla
staging area
Modify, Stage, Commit
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Commit - Internals
Un commit contiene:
La descrizione (come contenuto)
Autore e Commiter (con relative date)
Un albero (tree) contenente puntatori ai file
Un puntatore al commit precedente (null per il primo commit)
A commit and its tree
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Commit - Internals (I)
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Branch
Ricorda! Git non salva i dati come una serie di modifiche, o differenze, ma come una
serie di istantanee.
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Branch (II)
I branch non sono altro che riferimenti/puntatori a uno specifico
commit.
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Branch - Workflow
Esitono varie strategie di utilizzo di dei branch durante lo sviluppo.
La mia preferita è la seguente:
1. Branch - Crea un branch dal ramo principale
2. Sviluppa - Aggiungi commit al tuo branch
3. Rebase - Fai il rebase del tuo branch sull’ultima versione del ramo
principale
4. Merge - Fai il merge del tuo branch sul ramo principale
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Branch - Workflow (II)
Master/Develop workflow
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
History
Visualizzare i singoli contrbuti
Visualizzare il workflow e le contribuzioni
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Introduzione a git CLI
Esistono diverse interfacce grafiche per git
L’interfaccia da linea di comando è quella usata dagli
sviluppatori di git come riferimento
L’interfaccia CLI supporta tutte le funzioni di git
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
git - Demo
Time for a Demo!
Revisionare, tracciare, collaborare - version control con git fales
Version control git - Introduzione git - Funzionamento git - CLI git - Demo Fine
Link utili
Sito ufficiale
git-scm.com
Documentazione in italiano
git-scm.com/book/it/v1
Revisionare, tracciare, collaborare - version control con git fales

Revisionare, tracciare, collaborare. Version control con git

  • 1.
  • 2.
    1 Version control Motivazione Requisiti Applicazioni Esempi 2git - Introduzione Perché git Un po’ di storia Princìpi 3 git - Funzionamento Repository Commit Branch History 4 git - CLI Considerazioni iniziali 5 git - Demo Revisionare, tracciare, collaborare - version control con git fales
  • 3.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Motivazione Lo realizzazione di un’opera d’ingegno (programma, libro, opera architettonica) è un processo iterativo, e collaborarivo Revisionare, tracciare, collaborare - version control con git fales
  • 4.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Requisiti Le problematiche che ci si trova ad affrontare sono: Gestire le varie versioni, o revisioni Tenere traccia delle singole modifiche Assicurarsi che tutti gli autori abbiano sempre a disposizione l’ultima versione Revisionare, tracciare, collaborare - version control con git fales
  • 5.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Applicazioni Codice sorgente Documentazione Libri / Pubblicazioni Progetti ingegneristici Lungometraggi animati ... Revisionare, tracciare, collaborare - version control con git fales
  • 6.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Esempi CVS / SVN Mercurial Bitkeeper Perforce git Revisionare, tracciare, collaborare - version control con git fales
  • 7.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Introduzione a git Revisionare, tracciare, collaborare - version control con git fales
  • 8.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Perché git Open Source Distribuito Veloce Design semplice Pensato per la collaborazione (sviluppo parallelo) In grado di gestire progetti di grandi dimensioni come il kernel Linux Revisionare, tracciare, collaborare - version control con git fales
  • 9.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Un po’ di storia Creato da Linus Torvalds nel 2005 per il kernel Linux Prendendo come riferimento Bitkeeper sulle cose da fare Prendendo come riferimento CVS sulle cose da NON fare Da alcuni anni mantenuto da Junio Hamano (濱野 純) For the first 10 year of kernel maintenance we literally used tarball and patches, which is a much superior source control management than CVS - Linux Torvalds Revisionare, tracciare, collaborare - version control con git fales
  • 10.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Princìpi –fast-version-control –everything-is-local –distributed-even-if-your-workflow-isnt –local-branching-on-the-cheap Revisionare, tracciare, collaborare - version control con git fales
  • 11.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Funzionamento di git Revisionare, tracciare, collaborare - version control con git fales
  • 12.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Repository È una cartella contenente tutte le informazioni di cui git ha bisogno. (cartella .git/) Questa cartella può trovarsi su un server remoto. git è distribuito, quando si scaricano le informazioni git da remoto si crea una copia locale e completa. Centralizzato vs Distribuito Revisionare, tracciare, collaborare - version control con git fales
  • 13.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Commit Un commit è fondamentalmente l’operazione con cui si crea una nuova versione, o revisione. Può essere visto come una modifica rispetto alla versione precendente (altri) Oppure come il salvataggio dello stato attuale del sistema (git) Revisionare, tracciare, collaborare - version control con git fales
  • 14.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Commit - Altri VCS Le versioni sono gestite come differenze sequenziali rispetto alla verione precente Revisionare, tracciare, collaborare - version control con git fales
  • 15.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Commit - git Le versioni sono gestite come snapshots, fotografie del contenuto dei file ad un dato momento Revisionare, tracciare, collaborare - version control con git fales
  • 16.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Commit - Workflow Modifichi la working directory Fai lo stage dei file, aggiungendo uno snapshot alla staging area. Fai il commit, che fa uno snapshot permanente della staging area nel repository (.git) Modified = File modificato Staged = File modificato ed aggiunto alla staging area Modify, Stage, Commit Revisionare, tracciare, collaborare - version control con git fales
  • 17.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Commit - Internals Un commit contiene: La descrizione (come contenuto) Autore e Commiter (con relative date) Un albero (tree) contenente puntatori ai file Un puntatore al commit precedente (null per il primo commit) A commit and its tree Revisionare, tracciare, collaborare - version control con git fales
  • 18.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Commit - Internals (I) Revisionare, tracciare, collaborare - version control con git fales
  • 19.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Branch Ricorda! Git non salva i dati come una serie di modifiche, o differenze, ma come una serie di istantanee. Revisionare, tracciare, collaborare - version control con git fales
  • 20.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Branch (II) I branch non sono altro che riferimenti/puntatori a uno specifico commit. Revisionare, tracciare, collaborare - version control con git fales
  • 21.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Branch - Workflow Esitono varie strategie di utilizzo di dei branch durante lo sviluppo. La mia preferita è la seguente: 1. Branch - Crea un branch dal ramo principale 2. Sviluppa - Aggiungi commit al tuo branch 3. Rebase - Fai il rebase del tuo branch sull’ultima versione del ramo principale 4. Merge - Fai il merge del tuo branch sul ramo principale Revisionare, tracciare, collaborare - version control con git fales
  • 22.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Branch - Workflow (II) Master/Develop workflow Revisionare, tracciare, collaborare - version control con git fales
  • 23.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine History Visualizzare i singoli contrbuti Visualizzare il workflow e le contribuzioni Revisionare, tracciare, collaborare - version control con git fales
  • 24.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Introduzione a git CLI Esistono diverse interfacce grafiche per git L’interfaccia da linea di comando è quella usata dagli sviluppatori di git come riferimento L’interfaccia CLI supporta tutte le funzioni di git Revisionare, tracciare, collaborare - version control con git fales
  • 25.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine git - Demo Time for a Demo! Revisionare, tracciare, collaborare - version control con git fales
  • 26.
    Version control git- Introduzione git - Funzionamento git - CLI git - Demo Fine Link utili Sito ufficiale git-scm.com Documentazione in italiano git-scm.com/book/it/v1 Revisionare, tracciare, collaborare - version control con git fales