Your SlideShare is downloading. ×
Emerasoft Git quickstart
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Emerasoft Git quickstart

1,166
views

Published on

Breve panoramica sul sistema di Configuration Management Git.

Breve panoramica sul sistema di Configuration Management Git.

Published in: Self Improvement

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total Views
1,166
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 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 VisionArchitetturale•  Working Directory accoppiata con il repository•  No single-point of failure•  Utilizzo della rete non legato all’operatività quotidiana.•  Supporto nativo a progetti multi-siteProcessuale•  Definizione di workflow collaborativi e di revisione del codice.•  Peer-to-Peer alignment•  Continous Branching and MergingDRCS – 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 letturaCentralized RCS – Vision
  • 5. Ciascun utente ha una copia del repository in locale clonata da un altro repositoryDRCS – 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 atomicheGIT – 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 datiAvvertenza
  • 10. SnapshotGit Basics
  • 11. CommitGit Basics
  • 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^2Git Basics
  • 14. Work ow UtenteGit 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 stagingGit Basics
  • 16. Work ow di un leGit 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 HEADGit 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/masterGit Branching
  • 20. Git Branching
  • 21. •  git checkout master•  git merge iss53Git 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 repositoryGit 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.. Dobbiamoimparare a interagire con gli altri repositorygit remote -v•  Se abbiamo clonato il nostro repo troviamo configurato ilrepository remoto origingit remote add <nome_remote> <indirizzo>•  Aggiunge il repository specificato dall’indirizzo, all’elenco deiremoti con il nome che vogliamo dargli•  Possiamo riferirci al nuovo remote con il nome che gli abbiamodatoGit Remote
  • 27. Remote BranchesGit Remote Branches
  • 28. Remote BranchesGit Remote Branches
  • 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 raggiungibileGit 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 deiworkflow 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 propriomaster•  Il dittatore integra i master branches dei luogotenenti nel suoWork ow Distribuiti
  • 34. Bibliografia •  http://progit.org/ •  http://git-scm.com/ Git Scm Italia •  http://www.git-scm.itBiblioga a
  • 35. Emerasoft s.r.l.C.so Orbassano, 336 - 10137 Torino (TO)Tel. 011 19879273Professional Services Manager:Guido Leviguido.levi@emerasoft.com