SlideShare une entreprise Scribd logo
1  sur  35
Git QuickStart




 By Guido Levi
Mai sentito parlare di peer-to-peer ?




DRCS – Distributed Revision Control System
Distributed Revision Control System – La Vision


Architetturale

•  Working Directory accoppiata con il repository
•  No single-point of failure
•  Utilizzo della rete non legato all’operatività quotidiana.
•  Supporto nativo a progetti multi-site

Processuale

•  Definizione di workflow collaborativi e di revisione del codice.
•  Peer-to-Peer alignment
•  Continous Branching and Merging


DRCS – Vision
Centralized Revision Control System – La Vision




       •  Un server, tante working copy client
       •  Security and Access Control centralizzati
       •  Backup Centralizzato
       •  Mirroring complicato e in sola lettura




Centralized RCS – Vision
Ciascun utente ha una copia del repository in locale
    clonata da un altro repository




DRCS – Come funziona
Git

 •  Creato da Linus Torvalds per supportare lo sviluppo di Linux
 worldwide nel 2005

 •  Utilizzato da grandi progetti open source
      •  Linux
      •  Android
      •  Eclipse
      •  KDE

 •  Svariate GUI, soluzioni open source per i vari sistemi
 operativi e servizi di hosting

 •  Community molto attiva (frequentata anche da Google)

Un pò di storia…
Git


        •  Totalmente Distribuito
        •  Scalabile
        •  Efficiente
        •  Garantisce Integrità dei dati
        •  Forte supporto al lavoro parallelo
        •  Immutabilità e transazioni atomiche




GIT – Le caratteristiche
Cosa ci serve..




     Linux
        •  apt-get install git-core

     Mac
       •  http://code.google.com/p/git-osx-installer/

     Windows
        •  http://code.google.com/p/msysgit/



GIT – Si comincia
.. Git è stato creato da Linus.. Due considerazioni

        •  Impariamo a usarlo da shell
        •  Per padroneggiarlo dobbiamo partire dalla sua
        struttura dati




Avvertenza
Snapshot




Git Basics
Commit




Git Basics
Commit Graph




•  git show 98ca9 ….



Git Commit graph
HEAD


             Voi siete qui !

             •  git show HEAD~2 (oppure HEAD^^)
             •  git show HEAD@{yesterday}
             •  git show HEAD@{2.days.ago}
             •  git show HEAD^2 (in caso di più ancestor)
             •  git show HEAD~3^2




Git Basics
Work ow Utente




Git Basics
Staging Area (Index)

•  Un’area intermedia tra la working directory e il repository.
L’operazione di commit versiona il contenuto della staging area


                           git add
                           Aggiunge i file modificati alla staging

                           git commit

                            Versiona il contenuto della staging




Git Basics
Work ow di un le




Git Basics
git status
 •  Riassume la situazione della working directory rispetto alla
 staging area.

                git diff
                Confronta la working directory con la staging area




                git diff --staged
                Confronta la staging area con la HEAD




Git Basics
Reverting

•  Git fornisce diverse possibilità di intervento su commit già
eseguite

                     •  Sovrascrittura di commit esistenti (amend)
                     •  Rimozione di commit esistenti (reset)
                     •  Revert di commit precedenti (revert)
                      Attenzione !! Alcune sono irreversibili !
                      Modificano il grafo delle commit !
                      Prima di usarle pensarci molto bene !
                      Non usarle MAI su commit già inviate ai
                      server remoti !



Git Basics
Object References

•  Un branch è un reference a una commit !
•  Un puntatore che si sposta nel grafo delle commit
•  Il default branch è master..




•  cat .git/refs/heads/master

Git Branching
Git Branching
•  git checkout master




•  git merge iss53




Git Merging
Questo era quello semplice….
•  C’e’ un altro modo per eseguire il merge di due rami..

Rebase…


                                    •  git checkout experiment
                                    •  git rebase master



•  Fast-Forward…


 •  Stesso risultato del merge semplice ma…

Git Merging
Rebase

    •  La storia è più ‘pulita’, si perde traccia dell’avvenuta
    ramificazione
    •  In caso di integrazione di una patch, chi integra deve
    solo eseguire un fast-forward..




Git Merging
Rebase
  Una storia molto più lineare !!


                   Non fate rebase su commit
                   che avete già inviato a repository remoti

                   Si deve usare solo per rendere
                   più lineare la storia del proprio lavoro
                   prima di eseguire operazioni di push
                   verso altri repository




Git Merging
Branching workflow
•  Master – codice stabile pronto per il rilascio
•  Branch di sviluppo (long-running)
•  Topic – branches usa e getta (tipo hotfix)




Git Branching Work ow
Remote
•  Ora che sappiamo lavorare sul nostro repo.. Dobbiamo
imparare a interagire con gli altri repository

git remote -v
•  Se abbiamo clonato il nostro repo troviamo configurato il
repository remoto origin

git remote add <nome_remote> <indirizzo>
•  Aggiunge il repository specificato dall’indirizzo, all’elenco dei
remoti con il nome che vogliamo dargli
•  Possiamo riferirci al nuovo remote con il nome che gli abbiamo
dato


Git Remote
Remote Branches




Git Remote Branches
Remote Branches




Git Remote Branches
Un Git server è un repository remoto (sempre
    accessibile), utilizzato per la collaboration.




Git On Server
Ci sono diversi protocolli configurabili per rendere un
    git server raggiungibile




Git On Server
Workflow Distribuiti


•  Git è peer-to-peer. Potenzialmente qualunque peer può
ricevere e inviare dati da e verso gli altri peer.


•  Si possono definire le relazioni tra i peer per stabilire dei
workflow collaborativi..


•  Non tutti i repository sono uguali !
•  Solo alcuni repository possono eseguire push sui repo
“blessed”



Work ow Distribuiti
Centralized Workflow
 •  Peer alignment
 •  Per eseguire il push nello shared repo, devo prima essere
 aggiornato (pull)… Vi ricorda qualcosa ??




Work ow Distribuiti
Dittatore – Luogotenenti Workflow

•  Usato per lo sviluppo del kernel linux
•  I luogotenenti integrano il lavoro dei developer nel proprio
master
•  Il dittatore integra i master branches dei luogotenenti nel suo




Work ow Distribuiti
Bibliografia


        •  http://progit.org/
        •  http://git-scm.com/



 Git Scm Italia


        •  http://www.git-scm.it




Biblioga a
Emerasoft s.r.l.

C.so Orbassano, 336 - 10137 Torino (TO)
Tel. 011 19879273

Professional Services Manager:
Guido Levi
guido.levi@emerasoft.com

Contenu connexe

En vedette

INNOVACIÓN EDUCATIVA EN EL SIGLO XXI, Linda Castañeda & Jordi Adell
INNOVACIÓN EDUCATIVA  EN EL SIGLO XXI, Linda Castañeda & Jordi AdellINNOVACIÓN EDUCATIVA  EN EL SIGLO XXI, Linda Castañeda & Jordi Adell
INNOVACIÓN EDUCATIVA EN EL SIGLO XXI, Linda Castañeda & Jordi AdellJordi Adell
 
¿Cómo puedes organizar tu trastero?
¿Cómo puedes organizar tu trastero?¿Cómo puedes organizar tu trastero?
¿Cómo puedes organizar tu trastero?LimpiezasExpress
 
Formemos hijos triunfadores
Formemos hijos triunfadoresFormemos hijos triunfadores
Formemos hijos triunfadoresBerli Onle
 
Rúbrica treball en equip
Rúbrica treball en equipRúbrica treball en equip
Rúbrica treball en equipmflore22
 
Las galletas de plátano y avena de Jaime Castellanos
Las galletas de plátano y avena de Jaime CastellanosLas galletas de plátano y avena de Jaime Castellanos
Las galletas de plátano y avena de Jaime CastellanosJaime Castellanos
 
Ideas para ganar espacio en tu cocina
Ideas para ganar espacio en tu cocinaIdeas para ganar espacio en tu cocina
Ideas para ganar espacio en tu cocinaLimpiezasExpress
 
¿Cómo mantener tu casa limpia día a día?
¿Cómo mantener tu casa limpia día a día?¿Cómo mantener tu casa limpia día a día?
¿Cómo mantener tu casa limpia día a día?LimpiezasExpress
 
Programació amb Blockly Games Turtle
Programació amb Blockly Games TurtleProgramació amb Blockly Games Turtle
Programació amb Blockly Games TurtleXavier Rosell
 
人口統計應用於選舉預測-蔡佳泓
人口統計應用於選舉預測-蔡佳泓人口統計應用於選舉預測-蔡佳泓
人口統計應用於選舉預測-蔡佳泓台灣資料科學年會
 
以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻
以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻
以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻台灣資料科學年會
 
Capítulo XVI - MC
Capítulo XVI - MCCapítulo XVI - MC
Capítulo XVI - MC12anogolega
 
Product Marketing and Management for Fair and Lovely Max Fairness
Product Marketing and Management for Fair and Lovely Max FairnessProduct Marketing and Management for Fair and Lovely Max Fairness
Product Marketing and Management for Fair and Lovely Max FairnessPrajakta Talathi
 
孫民/從電腦視覺看人工智慧 : 下一件大事
孫民/從電腦視覺看人工智慧 : 下一件大事孫民/從電腦視覺看人工智慧 : 下一件大事
孫民/從電腦視覺看人工智慧 : 下一件大事台灣資料科學年會
 
李俊良/Feature Engineering in Machine Learning
李俊良/Feature Engineering in Machine Learning李俊良/Feature Engineering in Machine Learning
李俊良/Feature Engineering in Machine Learning台灣資料科學年會
 
李宏毅/當語音處理遇上深度學習
李宏毅/當語音處理遇上深度學習李宏毅/當語音處理遇上深度學習
李宏毅/當語音處理遇上深度學習台灣資料科學年會
 
Memorial do Convento
Memorial do ConventoMemorial do Convento
Memorial do Conventoguest304ad9
 
Com avaluar l'aprenentatge basat en problemes?
Com avaluar l'aprenentatge basat en problemes?Com avaluar l'aprenentatge basat en problemes?
Com avaluar l'aprenentatge basat en problemes?Xavier Rosell
 

En vedette (20)

INNOVACIÓN EDUCATIVA EN EL SIGLO XXI, Linda Castañeda & Jordi Adell
INNOVACIÓN EDUCATIVA  EN EL SIGLO XXI, Linda Castañeda & Jordi AdellINNOVACIÓN EDUCATIVA  EN EL SIGLO XXI, Linda Castañeda & Jordi Adell
INNOVACIÓN EDUCATIVA EN EL SIGLO XXI, Linda Castañeda & Jordi Adell
 
¿Cómo puedes organizar tu trastero?
¿Cómo puedes organizar tu trastero?¿Cómo puedes organizar tu trastero?
¿Cómo puedes organizar tu trastero?
 
ベトナム人の貯蓄について
ベトナム人の貯蓄についてベトナム人の貯蓄について
ベトナム人の貯蓄について
 
Formemos hijos triunfadores
Formemos hijos triunfadoresFormemos hijos triunfadores
Formemos hijos triunfadores
 
Rúbrica treball en equip
Rúbrica treball en equipRúbrica treball en equip
Rúbrica treball en equip
 
Las galletas de plátano y avena de Jaime Castellanos
Las galletas de plátano y avena de Jaime CastellanosLas galletas de plátano y avena de Jaime Castellanos
Las galletas de plátano y avena de Jaime Castellanos
 
Ideas para ganar espacio en tu cocina
Ideas para ganar espacio en tu cocinaIdeas para ganar espacio en tu cocina
Ideas para ganar espacio en tu cocina
 
¿Cómo mantener tu casa limpia día a día?
¿Cómo mantener tu casa limpia día a día?¿Cómo mantener tu casa limpia día a día?
¿Cómo mantener tu casa limpia día a día?
 
Programació amb Blockly Games Turtle
Programació amb Blockly Games TurtleProgramació amb Blockly Games Turtle
Programació amb Blockly Games Turtle
 
人口統計應用於選舉預測-蔡佳泓
人口統計應用於選舉預測-蔡佳泓人口統計應用於選舉預測-蔡佳泓
人口統計應用於選舉預測-蔡佳泓
 
以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻
以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻
以健保資料分析對抗健康新聞的恐慌症候群-張俊鴻
 
Capítulo XVI - MC
Capítulo XVI - MCCapítulo XVI - MC
Capítulo XVI - MC
 
Product Marketing and Management for Fair and Lovely Max Fairness
Product Marketing and Management for Fair and Lovely Max FairnessProduct Marketing and Management for Fair and Lovely Max Fairness
Product Marketing and Management for Fair and Lovely Max Fairness
 
Árvore de Problemas
Árvore de ProblemasÁrvore de Problemas
Árvore de Problemas
 
孫民/從電腦視覺看人工智慧 : 下一件大事
孫民/從電腦視覺看人工智慧 : 下一件大事孫民/從電腦視覺看人工智慧 : 下一件大事
孫民/從電腦視覺看人工智慧 : 下一件大事
 
李俊良/Feature Engineering in Machine Learning
李俊良/Feature Engineering in Machine Learning李俊良/Feature Engineering in Machine Learning
李俊良/Feature Engineering in Machine Learning
 
李宏毅/當語音處理遇上深度學習
李宏毅/當語音處理遇上深度學習李宏毅/當語音處理遇上深度學習
李宏毅/當語音處理遇上深度學習
 
Theoretical Genetics
Theoretical GeneticsTheoretical Genetics
Theoretical Genetics
 
Memorial do Convento
Memorial do ConventoMemorial do Convento
Memorial do Convento
 
Com avaluar l'aprenentatge basat en problemes?
Com avaluar l'aprenentatge basat en problemes?Com avaluar l'aprenentatge basat en problemes?
Com avaluar l'aprenentatge basat en problemes?
 

Similaire à Emerasoft Git quickstart

Introduzione a Git e GitLab
Introduzione a Git e GitLabIntroduzione a Git e GitLab
Introduzione a Git e GitLabYefry Figueroa
 
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 a git
Introduzione a gitIntroduzione a git
Introduzione a gitrpanfili
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a gitKlab
 
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions  CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions Davide Benvegnù
 
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 freelanceFabio Mora
 
Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3Paolo Ferretti
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Alessandro del Gobbo
 
Code Contracts and Generics: implementing a LINQ-enabled Repository
Code Contracts and Generics: implementing a LINQ-enabled RepositoryCode Contracts and Generics: implementing a LINQ-enabled Repository
Code Contracts and Generics: implementing a LINQ-enabled RepositoryAndrea Saltarello
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)Giorgio Di Nardo
 
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Codemotion
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...MariaDB plc
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBSteve Maraspin
 

Similaire à Emerasoft Git quickstart (20)

Introduzione a Git
Introduzione a GitIntroduzione a Git
Introduzione a Git
 
Introduzione a Git e GitLab
Introduzione a Git e GitLabIntroduzione a Git e GitLab
Introduzione a Git e GitLab
 
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.
 
Git e GitHub
Git e GitHubGit e GitHub
Git e GitHub
 
Git e Git Flow
Git e Git Flow Git e Git Flow
Git e Git Flow
 
Controllo di versione e Git
Controllo di versione e GitControllo di versione e Git
Controllo di versione e Git
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a git
 
Introduzione a git
Introduzione a gitIntroduzione a git
Introduzione a git
 
Xamarin DevOps
Xamarin DevOpsXamarin DevOps
Xamarin DevOps
 
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions  CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
CI CD per .Net 5? Facile con Azure Pipelines e GitHub Actions
 
Docker & DevOps
Docker  & DevOpsDocker  & DevOps
Docker & DevOps
 
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
 
Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3Corso Python Deltapromo - Lezione 3
Corso Python Deltapromo - Lezione 3
 
Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013Introduzione a Drupal 7 - 14/03/2013
Introduzione a Drupal 7 - 14/03/2013
 
Code Contracts and Generics: implementing a LINQ-enabled Repository
Code Contracts and Generics: implementing a LINQ-enabled RepositoryCode Contracts and Generics: implementing a LINQ-enabled Repository
Code Contracts and Generics: implementing a LINQ-enabled Repository
 
Git in 5 minuti
Git in 5 minutiGit in 5 minuti
Git in 5 minuti
 
ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)ASP.NET MVC: Andare oltre il 100% (Web@work)
ASP.NET MVC: Andare oltre il 100% (Web@work)
 
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
Continuous Delivery Database - Diego Mauricio Lagos Morales - Codemotion Rome...
 
Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...Come l’Open Source può essere alla base di un business di successo: il caso H...
Come l’Open Source può essere alla base di un business di successo: il caso H...
 
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDBPolyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
Polyglot Persistance con PostgreSQL, CouchDB, MongoDB, Redis e OrientDB
 

Plus de Emerasoft, solutions to collaborate

Percezione Vs Realtà: uno sguardo data-driven sull'OS risk management
Percezione Vs Realtà: uno sguardo data-driven sull'OS risk managementPercezione Vs Realtà: uno sguardo data-driven sull'OS risk management
Percezione Vs Realtà: uno sguardo data-driven sull'OS risk managementEmerasoft, solutions to collaborate
 
webinar LieberLieber & Emerasoft. Verso il DevOps, con i modelli
webinar LieberLieber & Emerasoft. Verso il DevOps, con i modelliwebinar LieberLieber & Emerasoft. Verso il DevOps, con i modelli
webinar LieberLieber & Emerasoft. Verso il DevOps, con i modelliEmerasoft, solutions to collaborate
 
Il DevOps è troppo impegnativo? Keep calm e adotta una DevOps Platform
Il DevOps è troppo impegnativo? Keep calm e adotta una DevOps PlatformIl DevOps è troppo impegnativo? Keep calm e adotta una DevOps Platform
Il DevOps è troppo impegnativo? Keep calm e adotta una DevOps PlatformEmerasoft, solutions to collaborate
 
Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022
Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022
Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022Emerasoft, solutions to collaborate
 
Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...
Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...
Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...Emerasoft, solutions to collaborate
 
Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...
Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...
Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...Emerasoft, solutions to collaborate
 
La Digital Transformation ha un nuovo alleato: Value Stream Management
La Digital Transformation ha un nuovo alleato: Value Stream ManagementLa Digital Transformation ha un nuovo alleato: Value Stream Management
La Digital Transformation ha un nuovo alleato: Value Stream ManagementEmerasoft, solutions to collaborate
 
Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...
Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...
Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...Emerasoft, solutions to collaborate
 
INAIL e la cultura cybersecurity: Sonatype Advanced Development Pack
INAIL e la cultura cybersecurity: Sonatype Advanced Development PackINAIL e la cultura cybersecurity: Sonatype Advanced Development Pack
INAIL e la cultura cybersecurity: Sonatype Advanced Development PackEmerasoft, solutions to collaborate
 
Polarion ALM & Newired: vincere la resistenza culturale in azienda
Polarion ALM & Newired: vincere la resistenza culturale in aziendaPolarion ALM & Newired: vincere la resistenza culturale in azienda
Polarion ALM & Newired: vincere la resistenza culturale in aziendaEmerasoft, solutions to collaborate
 
Costruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio DevopsCostruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio DevopsEmerasoft, solutions to collaborate
 

Plus de Emerasoft, solutions to collaborate (20)

PAnontiDEMO_5 motivi per cui una PA ha bisogno di una DAP
PAnontiDEMO_5 motivi per cui una PA ha bisogno di una DAPPAnontiDEMO_5 motivi per cui una PA ha bisogno di una DAP
PAnontiDEMO_5 motivi per cui una PA ha bisogno di una DAP
 
Percezione Vs Realtà: uno sguardo data-driven sull'OS risk management
Percezione Vs Realtà: uno sguardo data-driven sull'OS risk managementPercezione Vs Realtà: uno sguardo data-driven sull'OS risk management
Percezione Vs Realtà: uno sguardo data-driven sull'OS risk management
 
webinar LieberLieber & Emerasoft. Verso il DevOps, con i modelli
webinar LieberLieber & Emerasoft. Verso il DevOps, con i modelliwebinar LieberLieber & Emerasoft. Verso il DevOps, con i modelli
webinar LieberLieber & Emerasoft. Verso il DevOps, con i modelli
 
ComeToCode 2022 - speech di Emerasoft
ComeToCode 2022 - speech di EmerasoftComeToCode 2022 - speech di Emerasoft
ComeToCode 2022 - speech di Emerasoft
 
Il DevOps è troppo impegnativo? Keep calm e adotta una DevOps Platform
Il DevOps è troppo impegnativo? Keep calm e adotta una DevOps PlatformIl DevOps è troppo impegnativo? Keep calm e adotta una DevOps Platform
Il DevOps è troppo impegnativo? Keep calm e adotta una DevOps Platform
 
Onboarding digitale sulle piattaforme della PA - 13.04.pdf
Onboarding digitale sulle piattaforme della PA - 13.04.pdfOnboarding digitale sulle piattaforme della PA - 13.04.pdf
Onboarding digitale sulle piattaforme della PA - 13.04.pdf
 
Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022
Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022
Gitlab meetup Milano - Focus su Gitlab Devops Platform 27.01.2022
 
Viaggio nel mondo a servizi, come prepararsi per l'avventura
Viaggio nel mondo a servizi, come prepararsi per l'avventuraViaggio nel mondo a servizi, come prepararsi per l'avventura
Viaggio nel mondo a servizi, come prepararsi per l'avventura
 
Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...
Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...
Cloud Journey e IT Modernization: Da app monolitica a microservizi. vFunction...
 
Digitaltogether 2.0 IL MANIFESTO
Digitaltogether 2.0 IL MANIFESTODigitaltogether 2.0 IL MANIFESTO
Digitaltogether 2.0 IL MANIFESTO
 
POLARION by SIEMENS & GITLAB, una coppia vincente
POLARION by SIEMENS & GITLAB, una coppia vincentePOLARION by SIEMENS & GITLAB, una coppia vincente
POLARION by SIEMENS & GITLAB, una coppia vincente
 
Come proteggersi dagli attacchi informatici
Come proteggersi dagli attacchi informaticiCome proteggersi dagli attacchi informatici
Come proteggersi dagli attacchi informatici
 
Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...
Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...
Versioning dei modelli Enterprise Architect. Collaborazione e Standard con Le...
 
La Digital Transformation ha un nuovo alleato: Value Stream Management
La Digital Transformation ha un nuovo alleato: Value Stream ManagementLa Digital Transformation ha un nuovo alleato: Value Stream Management
La Digital Transformation ha un nuovo alleato: Value Stream Management
 
Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...
Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...
Inail e la cultura cybersecurity: la Direzione centrale per l’organizzazione ...
 
INAIL e la cultura cybersecurity: Sonatype Advanced Development Pack
INAIL e la cultura cybersecurity: Sonatype Advanced Development PackINAIL e la cultura cybersecurity: Sonatype Advanced Development Pack
INAIL e la cultura cybersecurity: Sonatype Advanced Development Pack
 
Polarion ALM & Newired: vincere la resistenza culturale in azienda
Polarion ALM & Newired: vincere la resistenza culturale in aziendaPolarion ALM & Newired: vincere la resistenza culturale in azienda
Polarion ALM & Newired: vincere la resistenza culturale in azienda
 
Api gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a serviceApi gitlab: configurazione dei progetti as a service
Api gitlab: configurazione dei progetti as a service
 
Smartbear: un framework unico per testare API e UI
Smartbear: un framework unico per testare API e UISmartbear: un framework unico per testare API e UI
Smartbear: un framework unico per testare API e UI
 
Costruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio DevopsCostruire una chain of custody del software - una guida per Cto Cio Devops
Costruire una chain of custody del software - una guida per Cto Cio Devops
 

Emerasoft Git quickstart

  • 1. Git QuickStart By Guido Levi
  • 2. Mai sentito parlare di peer-to-peer ? DRCS – Distributed Revision Control System
  • 3. Distributed Revision Control System – La Vision Architetturale •  Working Directory accoppiata con il repository •  No single-point of failure •  Utilizzo della rete non legato all’operatività quotidiana. •  Supporto nativo a progetti multi-site Processuale •  Definizione di workflow collaborativi e di revisione del codice. •  Peer-to-Peer alignment •  Continous Branching and Merging DRCS – Vision
  • 4. Centralized Revision Control System – La Vision •  Un server, tante working copy client •  Security and Access Control centralizzati •  Backup Centralizzato •  Mirroring complicato e in sola lettura Centralized RCS – Vision
  • 5. Ciascun utente ha una copia del repository in locale clonata da un altro repository DRCS – Come funziona
  • 6. Git •  Creato da Linus Torvalds per supportare lo sviluppo di Linux worldwide nel 2005 •  Utilizzato da grandi progetti open source •  Linux •  Android •  Eclipse •  KDE •  Svariate GUI, soluzioni open source per i vari sistemi operativi e servizi di hosting •  Community molto attiva (frequentata anche da Google) Un pò di storia…
  • 7. Git •  Totalmente Distribuito •  Scalabile •  Efficiente •  Garantisce Integrità dei dati •  Forte supporto al lavoro parallelo •  Immutabilità e transazioni atomiche GIT – Le caratteristiche
  • 8. Cosa ci serve.. Linux •  apt-get install git-core Mac •  http://code.google.com/p/git-osx-installer/ Windows •  http://code.google.com/p/msysgit/ GIT – Si comincia
  • 9. .. Git è stato creato da Linus.. Due considerazioni •  Impariamo a usarlo da shell •  Per padroneggiarlo dobbiamo partire dalla sua struttura dati Avvertenza
  • 12. Commit Graph •  git show 98ca9 …. Git Commit graph
  • 13. HEAD Voi siete qui ! •  git show HEAD~2 (oppure HEAD^^) •  git show HEAD@{yesterday} •  git show HEAD@{2.days.ago} •  git show HEAD^2 (in caso di più ancestor) •  git show HEAD~3^2 Git Basics
  • 15. Staging Area (Index) •  Un’area intermedia tra la working directory e il repository. L’operazione di commit versiona il contenuto della staging area git add Aggiunge i file modificati alla staging git commit Versiona il contenuto della staging Git Basics
  • 16. Work ow di un le Git Basics
  • 17. git status •  Riassume la situazione della working directory rispetto alla staging area. git diff Confronta la working directory con la staging area git diff --staged Confronta la staging area con la HEAD Git Basics
  • 18. Reverting •  Git fornisce diverse possibilità di intervento su commit già eseguite •  Sovrascrittura di commit esistenti (amend) •  Rimozione di commit esistenti (reset) •  Revert di commit precedenti (revert) Attenzione !! Alcune sono irreversibili ! Modificano il grafo delle commit ! Prima di usarle pensarci molto bene ! Non usarle MAI su commit già inviate ai server remoti ! Git Basics
  • 19. Object References •  Un branch è un reference a una commit ! •  Un puntatore che si sposta nel grafo delle commit •  Il default branch è master.. •  cat .git/refs/heads/master Git Branching
  • 21. •  git checkout master •  git merge iss53 Git Merging
  • 22. Questo era quello semplice…. •  C’e’ un altro modo per eseguire il merge di due rami.. Rebase… •  git checkout experiment •  git rebase master •  Fast-Forward… •  Stesso risultato del merge semplice ma… Git Merging
  • 23. Rebase •  La storia è più ‘pulita’, si perde traccia dell’avvenuta ramificazione •  In caso di integrazione di una patch, chi integra deve solo eseguire un fast-forward.. Git Merging
  • 24. Rebase Una storia molto più lineare !! Non fate rebase su commit che avete già inviato a repository remoti Si deve usare solo per rendere più lineare la storia del proprio lavoro prima di eseguire operazioni di push verso altri repository Git Merging
  • 25. Branching workflow •  Master – codice stabile pronto per il rilascio •  Branch di sviluppo (long-running) •  Topic – branches usa e getta (tipo hotfix) Git Branching Work ow
  • 26. Remote •  Ora che sappiamo lavorare sul nostro repo.. Dobbiamo imparare a interagire con gli altri repository git remote -v •  Se abbiamo clonato il nostro repo troviamo configurato il repository remoto origin git remote add <nome_remote> <indirizzo> •  Aggiunge il repository specificato dall’indirizzo, all’elenco dei remoti con il nome che vogliamo dargli •  Possiamo riferirci al nuovo remote con il nome che gli abbiamo dato Git Remote
  • 29. Un Git server è un repository remoto (sempre accessibile), utilizzato per la collaboration. Git On Server
  • 30. Ci sono diversi protocolli configurabili per rendere un git server raggiungibile Git On Server
  • 31. Workflow Distribuiti •  Git è peer-to-peer. Potenzialmente qualunque peer può ricevere e inviare dati da e verso gli altri peer. •  Si possono definire le relazioni tra i peer per stabilire dei workflow collaborativi.. •  Non tutti i repository sono uguali ! •  Solo alcuni repository possono eseguire push sui repo “blessed” Work ow Distribuiti
  • 32. Centralized Workflow •  Peer alignment •  Per eseguire il push nello shared repo, devo prima essere aggiornato (pull)… Vi ricorda qualcosa ?? Work ow Distribuiti
  • 33. Dittatore – Luogotenenti Workflow •  Usato per lo sviluppo del kernel linux •  I luogotenenti integrano il lavoro dei developer nel proprio master •  Il dittatore integra i master branches dei luogotenenti nel suo Work ow Distribuiti
  • 34. Bibliografia •  http://progit.org/ •  http://git-scm.com/ Git Scm Italia •  http://www.git-scm.it Biblioga a
  • 35. Emerasoft s.r.l. C.so Orbassano, 336 - 10137 Torino (TO) Tel. 011 19879273 Professional Services Manager: Guido Levi guido.levi@emerasoft.com