際際滷

際際滷Share a Scribd company logo
Version Control
Introduzione, principi generali e implementazione in Git
gennaio 2011
aggiornato aprile 2012
ri-aggiornato febbraio 2013
ri-ri-aggiornato aprile 2014
Di che si parla?
 Quando un progetto software diventa complesso,
anche la sua gestione 竪 complicata
 Il controllo revisioni permette di gestire tutte le
modifiche apportate ai documenti del progetto,
archiviando tutte le versioni del progetto sin dal suo
inizio
 Ecco cosa si pu嘆 fare...
E se non lo uso?
 E' un mondo libero, e ciascuno 竪 libero di sbagliare
nel modo che preferisce.
 MA questo 竪 quello che pu嘆 succedere..
Metodologie di sviluppo...
 Sviluppatore singolo
 Pi湛 sviluppatori
 Sviluppo con copie multiple
 Sviluppo con copia unica
Sviluppatore singolo
#include<stdio.h>
Int main()
{
int a;
int b;
}
File.c
#include<stdio.h>
Int main()
{
int a;
}
File.c
Ieri
Oggi
Sviluppatore singolo
(Problemi)
 Difficile recuperare le versioni pi湛 vecchie
basandosi sulla data.
 Difficile stabilire le differenze tra le versioni di uno
stesso file.
Sviluppatori multipli
(Sviluppo con copia individuale)
Sviluppatore-1
Sviluppatore-2
Sviluppatore-3
PC-1
PC-2
PC-3
server
Sviluppatori multipli
(Sviluppo con copia individuale)
Problemi
 Difficile riunire i vari file modificati singolarmente.
 Difficile recuperare le versioni precedenti basandosi
sull'utente o sulla data.
Sviluppatori multipli
(Sviluppo con copia unica)
Sviluppatore-1
Sviluppatore-2
Sviluppatore-3
server
Sviluppatori multipli
(Sviluppo con copia unica)
Problemi
 Impatto sul server e traffico di rete.
 Tempi di sviluppo lenti.
 Difficile recuperare le versioni precedenti,
basanndosi sulla data o sull'utente.
 Non si possono vedere le differenze tra la versione
precedente e l'attuale.
I problemi in sintesi
 Non c'竪 modo di recuperare le versioni precedenti,
basandosi sulla data o l'utente.
 Non c'竪 modo di vedere le differenze tra le versioni.
 Processo di fusione versioni manuale, lento e di
dubbio successo.
 Lunghi tempi di sviluppo.
Come risolverli?
 Utilizzando, ad esempio, un sistema di controllo
revisione.
 Detto anche Versioning, o Revision Control System
 Revision control (also known as version control, source control
or (source) code management (SCM)) is the management of
changes to documents, programs, and other information stored
as computer files.
Sviluppatore singolo
#include<stdio.h>
Int main()
{
int a;
int b;
}
File.c
#include<stdio.h>
Int main()
{
int a;
}
File.c
Ieri
Stamattina
Versione-1 Versione-2 Versione-3
#include<stdio.h>
Int main()
{
int a;
int b;
}
File.c
Stasera
Sviluppatori multipli
(Sviluppo in copia individuale)
Sviluppatore-1
Sviluppatore-2
Sviluppatore-3
Copia di lavoro - 1 del
Repository
Server
Repository (deposito)
principale
Copia di lavoro - 2 del
Repository
Commit (Consegna)
Primo checkout (copia) dal repository del server
Aggiornamentodal server
Copia di lavoro  3 del
Repository
Gestione file nel Repository
Versione-1
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-2
Date : 24-10- 2007
Time :11:00:12
User : user-2
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-3
Date : 24-10- 2007
Time :1200:12
User : user-3
Date : 24-10- 2007
Time :1200:12
User : user-2
Date : 24-10- 2007
Time :12:00:12
User : user-2
Date : 24-10- 2007
Time :12:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-2
Date : 24-10- 2007
Time :11:00:12
User : user-2
Date : 24-10- 2007
Time :11:00:12
User : user-3
Date : 24-10- 2007
Time :11:00:12
User : user-3
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-1
Date : 24-10- 2007
Time :11:00:12
User : user-2
Date : 24-10- 2007
Time :11:00:12
User : user-2
Date : 24-10- 2007
Time :11:00:12
User : user-3
Date : 24-10- 2007
Time :11:00:12
User : user-3
Date : 24-10- 2007
Time :11:00:12
Versione-2 Versione-3 Versione-4
Cosa otteniamo?
Un posto dove memorizzare le varie versioni
del codice (e tutti i documenti correlati)
Possibilit di tornare indietro in caso di errore
e tracciare le modifiche
Codice sempre aggiornato
Sviluppo parallelo facilitato
40 anni di versioning
SCCS & RCS ('70) CVS (2006)
Subversion (2001) GIT (2005)
SCCS e RCS
 SCSS: Rilasciato nel 1972, proprietario
 Enorme successo
 Base di tutti gli altri sistemi
 RCS: Rilasciato nel 1983, free software
 Lavora solo su singoli file
 Sintassi complessa
CVS
 Basato su (RCS) con informazioni addizionali
 Presenta per嘆 alcune lacune, tra le quali:
 Supporta solo file di testo
 Numerazione separata per ogni file
 Impossibile rinominare i file
SVN
 Subversion, SVN per gli amici, 竪 un'evoluzione di
CVS
 E' open source e gratuito (Apache Licence)
 E' molto diffuso
 E' multipiattaforma
 E' integrato in vari IDE
DRCS: Hg e Git
 Con l'avvento di Internet, si sviluppano i Distributed
Revision Control System.
 Sfruttano le nuove caratteristiche dei sistemi e la
rete.
 I pi湛 noti sono Mercurial (Hg per gli amici) e Git.
Basati su un software proprietario chiamato
Bitkeeper
 (ma sono entrambi open source)
DRCS  perch辿 竪 meglio?
Git SVN
Si pu嘆 lavorare offline, perch辿 il sistema 竪
locale
Se non c'竪 rete non si pu嘆 lavorare (e si
piange amaramente)
Si pu嘆 portare il lavoro in una chiavetta No, non si pu嘆
Creazione semplice di una diramazione
sperimentale
Creare diramazioni 竪 complicato
Setup semplice Occorre installare o appoggiarsi a un server
Non c'竪 un deposito centrale e di riferimento
(anche se ci si pu嘆 accordare). Tutti hanno
la copia di tutto.
Il server centrare contiene tutte la modifiche.
Il download iniziale potrebbe essere di
grandi dimensioni
Glossario
 Repository (deposito)
Un insieme di oggetti (file) e i riferimenti necessari.
Pu嘆 essere online o offline
 Clone (solo git)
L'atto di duplicare localmente un repository
 Commit (lett. 'impegno', ma qui 'consegna')
Invio delle modifiche effettuate al repository
 Checkout
Copia o ripristino di una particolare versione del
progetto
GIT  il funzionamento
 GIT identifica tre possibili 'stati' per ogni file del
progetto a cui si sta lavorando
 Working Copy
Sono i file a cui state lavorando, che potete
modificare liberamente
 Staging Area
I file che avete modificato e che avete intenzione di
committare nel progetto definitivo
 Commit
I file modificati
Controllo di versione e Git
Controllo di versione e Git
Controllo di versione e Git
Controllo di versione e Git
Controllo di versione e Git
Controllo di versione e Git
Controllo di versione e Git
Controllo di versione e Git
Un esempio pi湛 pratico
 Vedremo il sistema applicato alla pratica
 Non useremo un programma, dato che
funziona per tutti i tipi di file (al meglio con i file
di testo)
 Si presume che abbiate gi installato Git (ne
parleremo separatamente)
Ciao, sono
Bob
Ciao, sono
Bob
Controllo di versione e Git
Pentitevi,
infedeli!!
Pentitevi,
infedeli!!
$油mkdir油librosacro
$油cd油librosacro
$油git油init
Capitolo油1
NerdGenesi
All'inizio油ci油fu油Bob,油che
era油l'origine油di油tutto.油
'capitolo油1.txt'油salvato
$油git油status
#油On油branch油master
#
#油Initial油commit
#
#油Untracked油files:
#
(use油"git油add油<file>..."油to油
include油in油what油will油be油committed)
#
#
chapter1.txt
$油git油add油chapter1.txt
$油git油status
#油On油branch油master
#
#油Initial油commit
#
#油Changes油to油be油committed:
#
(use油"git油rm油足足cached油<file>..."
to油unstage)
#
#油油new油file:油chapter1.txt
$油git油commit油足m油
Aggiungi油il油primo油capitolo.
[master油(root足commit)油8621aee]油
Aggiungi油il油primo油capitolo.
1油files油changed,油1油insertions(+),油0
deletions(足)
create油mode油100644油chapter1.txt
油
Whew!
 Diamo un'occhiata al log per vedere cos'竪 successo.
 $油git油log
commit油
bb9c52540ec20eca6bb3aee5713fb24474959b6a
Author:油Marcello油Missiroli油
<prof.missiroli@gmail.com>
Date:油油油Sun油Jan油27油18:09:15油2013油+0100
油油油油Reservations:油start
Indice del commit.
Calcolato in base al nome
dell'autore, alle modiche
e alla data.
Commento
E pi湛 in dettaglio...
 git diff HEAD
app/views/users/index.html.haml
@@ -3,14 +3,15 @@
-%ul{:class=>"users"}
-@users.each do |user|
+%table{class: "table table-striped"}
+ %tr
+ %th{:class => @name_header}= link_to 'Nome'
Ciao, sono
Tim
Ciao, sono
TimInsieme scriveremo...Insieme scriveremo...
Il Librone sacro!
$油git油remote油add油origin
git://librone/sacro.git
$油git油push油origin油master
Protocolli utilizzabili:
Git, ssh. http, local.
$油git油clone
git://librone/sacro.git
$油cd油librosacro
Capitolo油2
NerdCloning
E油poi油ci油fu油Tim,油che油
pensava油che油era油cosa油buona
E油giusta.油
'capitolo油2.txt'油salvato
$油git油add油'capitolo油2.txt'
$油git油commit油足m油Secondo油capitolo'
$油git油push油origin油master
$油git油pull油origin油master
$油ls
capitolo油1.txt油capitolo油2.txt油
$油git油commit油足m油'Terzo油capitolo'
$油git油commit油足m油'Capitolo油bello'
$油git油commit油足m油'Capitolo油nuovo'
$油git油commit油足m油'Quarto油capitolo'
$油git油commit油足m油'Nuove油idee'
$油git油commit油足m油'Conquista'
Branching  merging - conflitti
 Finora tutte le modifiche confluiscono in un unico
prodotto finale
 Pu嘆 essere necessario lavorare su versioni separate
dei file per evitare di sporcare il lavoro degli altri
(o per altri motivi)
 E' opportuno creare dei branch (diramazioni) sulle
quali lavorare in piena libert
Branching  merging - conflitti
 Il modo consigliato di lavoro 竪 proprio questo:
1) Branch & Edit
Lavorate su una versione separata del codice
2) Merge
Risincronizzarsi col ramo principale e risolvere
conflitti
3) Commit
Inviare le modifiche al repository centrale
$油git油足b油comandamenti
$油git油branch
master
*油comandamenti
$油git油checkout油足b油comandamenti
$油git油add油comandamenti.txt
$油git油commit油足m油Inizio油
comandamenti.
$油ls
capitolo油1.txt
capitolo油2.txt
comandamenti.txt
$油git油checkout油master
$油ls
capitolo油1.txt
capitolo油2.txt油
$油git油checkout油comandamenti
$油git油commit油足m油Primo油
comandamento
$油git油commit油足m油Secondo油
comandamento
$油git油checkout油master
$油git油merge油commandments
master
mastermaster
comandamenti
master
master
mastermaster
comandamenti
masterprecetti
Le branch sono utili
...ma possono diventare
complicate da gestire!
$油git油checkout油master
$油git油pull油origin油master
$油git油merge油comandamenti
Auto足merging油Capitolo油1.txt
CONFLICT油(content):油
Merge油conflict油in油Capitolo油1.txt
Automatic油merge油failed;
油fix油conflicts油and油then油
commit油the油result.
$油<<<<<<<油HEAD:Capitolo油1.txt
All'inizio油ci油fu油Bob,油che
=======
All'inizio油ci油fu油Tim,油che
>>>>>>>油comandamenti:Capitolo油1.txt
Commit? Discard?Commit!
Fork!
$油git油remote油add油libroditim
git://libroditim/librone.git
$油git油push油libroditim油master
* Installazione
* GitHub
* Demo project
Next: Workshop
GIT  Altri Links
 Netbeans:
 http://www.netbeans.org
 GIT:
 Repository pubblici online
https://github.com/
https://bitbucket.org/
 codeschool:
http://try.github.com/levels/1/challenges/1
 The Git Book
http://git-scm.com/book
Grazie
 Con il contributo di

Anil GuptaAnil Gupta (www.guptaanil.com)
 Pete Nicholls (github.com/Aupajo)
 Armando Fox
Questo documento 竪 dotato di licenza CreativeCommonQuesto documento 竪 dotato di licenza CreativeCommon
BY-SA 3.0BY-SA 3.0

http://creativecommons.org/licenses/by-sa/3.0/deed.ithttp://creativecommons.org/licenses/by-sa/3.0/deed.it

More Related Content

What's hot (20)

GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
Mohammad Imam Hossain
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
GoogleDevelopersStud1
A Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyA Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching Strategy
Vivek Parihar
Access control list acl - permissions in linux
Access control list acl  - permissions in linuxAccess control list acl  - permissions in linux
Access control list acl - permissions in linux
Sreenatha Reddy K R
Git Presentation
Git PresentationGit Presentation
Git Presentation
Prem Aseem Jain
The Fundamentals of Git
The Fundamentals of GitThe Fundamentals of Git
The Fundamentals of Git
DivineOmega
Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Git e GitHub - L'essenziale
Git e GitHub - L'essenziale
Gemma Catolino
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
Nilay Binjola
[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide
[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide
[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide
Ji-Woong Choi
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
Anurag Upadhaya
Beginner's guide to git and github
Beginner's guide to git and github Beginner's guide to git and github
Beginner's guide to git and github
SahilSonar4
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
Sage Sharp
Git (Internals)
Git (Internals)Git (Internals)
Git (Internals)
Sabin Bhatta
package mangement
package mangementpackage mangement
package mangement
ARYA TM
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
Craig Smith
Git n git hub
Git n git hubGit n git hub
Git n git hub
Jiwon Baek
Version Control History and Git Basics
Version Control History and Git BasicsVersion Control History and Git Basics
Version Control History and Git Basics
Sreedath N S
Starting with Git & GitHub
Starting with Git & GitHubStarting with Git & GitHub
Starting with Git & GitHub
Nicol叩s Tourn辿
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
Amit Manwade
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Somkiat Puisungnoen
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
Mohammad Imam Hossain
A Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching StrategyA Git Workflow Model or Branching Strategy
A Git Workflow Model or Branching Strategy
Vivek Parihar
Access control list acl - permissions in linux
Access control list acl  - permissions in linuxAccess control list acl  - permissions in linux
Access control list acl - permissions in linux
Sreenatha Reddy K R
The Fundamentals of Git
The Fundamentals of GitThe Fundamentals of Git
The Fundamentals of Git
DivineOmega
Git e GitHub - L'essenziale
Git e GitHub - L'essenziale Git e GitHub - L'essenziale
Git e GitHub - L'essenziale
Gemma Catolino
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
Nilay Binjola
[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide
[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide
[ろれ雑ろ] Red Hat ReaR (relax and-recover) Quick Guide
Ji-Woong Choi
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
Anurag Upadhaya
Beginner's guide to git and github
Beginner's guide to git and github Beginner's guide to git and github
Beginner's guide to git and github
SahilSonar4
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
Sage Sharp
Git (Internals)
Git (Internals)Git (Internals)
Git (Internals)
Sabin Bhatta
package mangement
package mangementpackage mangement
package mangement
ARYA TM
Version Control & Git
Version Control & GitVersion Control & Git
Version Control & Git
Craig Smith
Git n git hub
Git n git hubGit n git hub
Git n git hub
Jiwon Baek
Version Control History and Git Basics
Version Control History and Git BasicsVersion Control History and Git Basics
Version Control History and Git Basics
Sreedath N S
Docker introduction &amp; benefits
Docker introduction &amp; benefitsDocker introduction &amp; benefits
Docker introduction &amp; benefits
Amit Manwade
Introduction to Git and Github
Introduction to Git and GithubIntroduction to Git and Github
Introduction to Git and Github
Somkiat Puisungnoen

Viewers also liked (20)

L'avvento del programmatore sociale
L'avvento del programmatore socialeL'avvento del programmatore sociale
L'avvento del programmatore sociale
Marcello Missiroli
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Programmazione a oggetti tramite la macchina del caff辿 (pt. 3)
Marcello Missiroli
Insegnare Agile
Insegnare AgileInsegnare Agile
Insegnare Agile
Marcello Missiroli
Ruby in 25 minuti
Ruby in 25 minutiRuby in 25 minuti
Ruby in 25 minuti
Marcello Missiroli
Dhcp
DhcpDhcp
Dhcp
Marcello Missiroli
Corso Moodle: perch辿?
Corso Moodle: perch辿?Corso Moodle: perch辿?
Corso Moodle: perch辿?
Marcello Missiroli
Uefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il maleUefi: l'eterna lotta tra il bene e il male
Uefi: l'eterna lotta tra il bene e il male
Marcello Missiroli
Corso Moodle: presentazione
Corso Moodle: presentazioneCorso Moodle: presentazione
Corso Moodle: presentazione
Marcello Missiroli
Lo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in JavaLo stack: tipo di dato astratto e implementazione in Java
Lo stack: tipo di dato astratto e implementazione in Java
Marcello Missiroli
Il ciclo for
Il ciclo forIl ciclo for
Il ciclo for
Marcello Missiroli
Eccezioni in java
Eccezioni in javaEccezioni in java
Eccezioni in java
Marcello Missiroli
Investire nelle user story
Investire nelle user storyInvestire nelle user story
Investire nelle user story
Marcello Missiroli
Moodle: i compiti (homework)
Moodle: i compiti (homework)Moodle: i compiti (homework)
Moodle: i compiti (homework)
Marcello Missiroli
Routing dinamico
Routing dinamicoRouting dinamico
Routing dinamico
Marcello Missiroli
Espressioni regolari
Espressioni regolariEspressioni regolari
Espressioni regolari
Marcello Missiroli
Introduzione a java doc
Introduzione a java docIntroduzione a java doc
Introduzione a java doc
Marcello Missiroli
The Sequel to sql
The Sequel to sqlThe Sequel to sql
The Sequel to sql
Marcello Missiroli
Introduzione a GIT - Laboratorio di Web Design 2014/15
Introduzione a GIT - Laboratorio di Web Design 2014/15Introduzione a GIT - Laboratorio di Web Design 2014/15
Introduzione a GIT - Laboratorio di Web Design 2014/15
Giovanni Buffa
赫庄岳S閣鰻
赫庄岳S閣鰻赫庄岳S閣鰻
赫庄岳S閣鰻
Ali Servet Donmez

Similar to Controllo di versione e Git (20)

Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Gerardo Di Iorio
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
sscalabrino
Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)
Marcello Missiroli
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
Gerardo Di Iorio
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
Fabio Mora
02 linux corso pratica
02 linux corso pratica02 linux corso pratica
02 linux corso pratica
vincenzo cervi
Git in 5 minuti
Git in 5 minutiGit in 5 minuti
Git in 5 minuti
Daniele Mondello
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Janhu Silvio Crispiatico
Revisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitRevisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con git
Fabio Alessandrelli
GIT commands version control system and collaboration
GIT commands version control system and collaborationGIT commands version control system and collaboration
GIT commands version control system and collaboration
satmania
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
Mirko Mancin
Corso linux base
Corso linux baseCorso linux base
Corso linux base
Beniamino Ferrari
Desktop searching
Desktop searchingDesktop searching
Desktop searching
Flavio Castelli
Emerasoft Git quickstart
Emerasoft Git quickstartEmerasoft Git quickstart
Emerasoft Git quickstart
Emerasoft, solutions to collaborate
Git best practices
Git best practicesGit best practices
Git best practices
Matteo Gavagnin
Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
Salvatore Cordiano
Systemd - Como Lug
Systemd - Como LugSystemd - Como Lug
Systemd - Como Lug
Truelite
Distro linux
Distro linuxDistro linux
Distro linux
Alessandro Costa
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
Paolo Campegiani
Systemd - Firenze LUG
Systemd - Firenze LUGSystemd - Firenze LUG
Systemd - Firenze LUG
Truelite
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Git/Continuous Integration/Docker: la terna dello sviluppo moderno.
Gerardo Di Iorio
Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)Introduzione al Version Control (SVN)
Introduzione al Version Control (SVN)
Marcello Missiroli
Linux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelanceLinux & Tools: per la piccola azienda e i freelance
Linux & Tools: per la piccola azienda e i freelance
Fabio Mora
02 linux corso pratica
02 linux corso pratica02 linux corso pratica
02 linux corso pratica
vincenzo cervi
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Presentazione del Software Libero e di Ubuntu al Linux Day 25 ottobre 2014
Janhu Silvio Crispiatico
Revisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con gitRevisionare, tracciare, collaborare. Version control con git
Revisionare, tracciare, collaborare. Version control con git
Fabio Alessandrelli
GIT commands version control system and collaboration
GIT commands version control system and collaborationGIT commands version control system and collaboration
GIT commands version control system and collaboration
satmania
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of ThingsCodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
CodingGym - Lezione 1 - Corso Linux, Android e Internet of Things
Mirko Mancin
Corso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document ManagementCorso di Versioning, Configuration & Document Management
Corso di Versioning, Configuration & Document Management
Salvatore Cordiano
Systemd - Como Lug
Systemd - Como LugSystemd - Como Lug
Systemd - Como Lug
Truelite
Amministrazione base dei sistemi Linux
Amministrazione base dei sistemi LinuxAmministrazione base dei sistemi Linux
Amministrazione base dei sistemi Linux
Paolo Campegiani
Systemd - Firenze LUG
Systemd - Firenze LUGSystemd - Firenze LUG
Systemd - Firenze LUG
Truelite

More from Marcello Missiroli (13)

Algorithmist guide II
Algorithmist guide IIAlgorithmist guide II
Algorithmist guide II
Marcello Missiroli
Guida del perfetto Algoritmista I
Guida del perfetto Algoritmista IGuida del perfetto Algoritmista I
Guida del perfetto Algoritmista I
Marcello Missiroli
Workshop: Introduzione ad TDD
Workshop: Introduzione ad TDDWorkshop: Introduzione ad TDD
Workshop: Introduzione ad TDD
Marcello Missiroli
Dal c a Java (3/3)
Dal c a Java (3/3)Dal c a Java (3/3)
Dal c a Java (3/3)
Marcello Missiroli
Dal C a Java (2/3)
Dal C a Java (2/3)Dal C a Java (2/3)
Dal C a Java (2/3)
Marcello Missiroli
Dal C a Java (1/3)
Dal C a Java (1/3)Dal C a Java (1/3)
Dal C a Java (1/3)
Marcello Missiroli
Variabili
VariabiliVariabili
Variabili
Marcello Missiroli
Sviluppo degli algoritmi
Sviluppo degli algoritmiSviluppo degli algoritmi
Sviluppo degli algoritmi
Marcello Missiroli
5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo5 stadi dello sviluppo di un gruppo
5 stadi dello sviluppo di un gruppo
Marcello Missiroli
Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!Vogliamo programmatori stupidi e pigri!
Vogliamo programmatori stupidi e pigri!
Marcello Missiroli
Big O Notation
Big O NotationBig O Notation
Big O Notation
Marcello Missiroli
Il sistema binario
Il sistema binarioIl sistema binario
Il sistema binario
Marcello Missiroli
Introduzione al dns
Introduzione al dnsIntroduzione al dns
Introduzione al dns
Marcello Missiroli

Controllo di versione e Git