SlideShare a Scribd company logo
1 of 21
Download to read offline
La gestion de version avec
                                                 Git
                                          ([ʒit] [git])


                mathieu.leplatre@makina-corpus.com


Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoire
                               Les avantages
                             Scénario d'utilisation




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
SubVersioN : CVS done right




                  «There is no way to do CVS right. »

                                                                   - Linus Torvalds




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoire
                               Les avantages
                             Scénario d'utilisation




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La Petite Histoire

2002
 ●
     Linus choisit BitKeeper pour le noyau Linux
      ●
          « Merge » facilité
      ●
          Non-linéaire
      ●
          Décentralisé

2005
 ●
     17000 fichiers, 6 millions de lignes
 ●
     400 développeurs
 ●
     3 patches/heure, 3200 lignes/jour
 ●
     Une version = 5000 patchs


Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La Petite Histoire

2005
 ●
     5 Avril :      BitKeeper devient payant
 ●
     6 Avril :      Linus annonce son prototype « Git »
 ●
     7 Avril :      Une instance est hébergée chez lui
 ●
     18 Avril : Merge multiple de branches
 ●
     16 Juin : Sortie du noyau 2.6.12 géré sur Git


2011
 ●
     Septembre : 1 million d'utilisateurs sur GitHub



Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
« I'm an egotistical bastard, and I name all my
         projects after myself. First Linux, now git. »

                                                                   - Linus Torvalds




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoire
                               Les avantages
                             Scénario d'utilisation




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 1 - décentralisé

 ●
     Local                                                         Dev
      ●
          N'importe où !
      ●
          Mode déconnecté                                                           Public
      ●
          Serveur facultatif
 ●
     Distant
      ●
          Branche par branche
 ●
     Publication                                                               @server
 ●
     Déploiement                                  /home
      ●
          ex : heroku.com

                                                                         SVN




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 2 – léger

 ●
     Un clone parfait
      ●
          = complet
 ●
     Rapide !
      ●
          Réseau seulement pour synchroniser
 ●
     Ultra-performant !
 ●
     Ne stocke que les « diff » 
      ●
          Ex : Mozilla 12Go → 420Mo
 ●
     Branches et Tags
      ●
           = fichiers métadonnées
 ●
     Transport : SSH, FTP, HTTP, WebDAV, Email...



Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 3 – branché
           $ svn merge -r11:10 http://svn/svn/my_repos/test
           $ svn: REPORT request failed on '/svn/my_repos/!svn/bc/11/test'


           $ svn: MERGE request failed on '/svn/repository/trunk'
           $ svn: MERGE of '/svn/repository/trunk': 200 OK (http://svn.myserver.com)




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 3 – branché

 ●
     Vue graphique
 ●
     Locales et/ou distantes
 ●
     Algorithmes de fusion (« merge »)
 ●
     Déplacement (« rebase »)
 ●
     Avec suivi (« track »)




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 3 – branché

 ●
     Manipulation facilitée
 ●
     C'est le core committer celui qui développe, qui gère les conflits !
      ●
          « pull request »
 ●
     Nouveaux paradigmes (« Git Flow »)
      ●
          1 version = 1 branche
      ●
          1 feature = 1 branche


      ●
          Brouillon ? → branche !
      ●
          Temporaire ? → branche !
      ●
          Interrompu ? → branche !




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoire
                               Les avantages
                             Scénario d'utilisation




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
   ●
     Initialisation
  $ cd demo
  $ git init .
  Initialized empty Git repository
                                                                   gitg est ton ami

   ●
     Premières contributions dans master
  $ git add README
  $ git commit -m "Premier"

  (edition de README)
  $ git commit -a -m "Deuxième"

                                                        Local!


Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
 ●
   Ajout d'un dépôt distant
$ git remote add origin git://you@server/demo.git/ 

 ●
   Synchronisation : envoi
$ git push origin master
                                                         Local
                                                                   Distant
 ●
   Synchronisation : réception
$ git pull origin master

 ●
     commit != push



Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
 ●
     Travail en local                                                Désynchro



 ●
   Collaboration                                                    Distant
$ git fetch origin                                                 Local


                            Commit ajouté
 ●
   Fusion !
$ git merge origin/master


git pull = Fetch+Merge

Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
                         Départ
 ●
   Nouvelle branche
$ git branch refactor
$ git checkout refactor
...
...
$ git commit -m "Changement"

 ●
   Fusionner avec master
$ git merge master
                ou
 ●
   Repositionner refactor
$ git rebase master


Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
 ●
   Tagger une version
$ git tag 1.0

 ●
   Se rendre à un commit antérieur
$ git checkout 1.0
$ git checkout 0ec2ab

 ●
   Annuler les derniers commits
$ git reset HEAD~1




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Et maintenant ?

     $ sudo aptitude install git

 ●
     Dispo sur GNU/Linux, OS X, BSD, Solaris, AIX, BeOS... et Windows
 ●
     Eclipse Indigo 3.7 : Egit
 ●
     TurtoiseGit
 ●
     git-svn : mirroir Git d'un dépôt Subversion
 ●
     git mergetool : Utilise meld par ex. pour résoudre les conflits

 ●
     Server Git  = Server SSH + git init --bare /path/repo
 ●
     http://github.com
 ●
     http://gitorious.org

Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
ReconVersion
 SubVersion                                                        Git
 trunk                                                             master
 svn checkout                                                      git clone (+git checkout)
 svn commit                                                        git commit -a + git push
 svn update                                                        git pull
 svn add                                                           git add
 svn merge -r 20:HEAD                                              git merge branch
 http://example.com/svn/branches/branch
 svn copy http://example.com/svn/trunk                             git tag name
 http://example.com/svn/tags/name
 svn copy http://example.com/svn/trunk                             git branch branch
 http://example.com/svn/branches/branch                            git checkout branch
 svn switch http://example.com/svn/branches/branch




Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.

More Related Content

What's hot

Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
goldoraf
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
Geoffrey Bachelet
 

What's hot (20)

Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Les bases de git
Les bases de gitLes bases de git
Les bases de git
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Git développez autrement
Git développez autrementGit développez autrement
Git développez autrement
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Git
GitGit
Git
 
GitPourLaNulle
GitPourLaNulleGitPourLaNulle
GitPourLaNulle
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Git & Rstudio vincent guyader
Git & Rstudio vincent guyaderGit & Rstudio vincent guyader
Git & Rstudio vincent guyader
 
Git
GitGit
Git
 
Git flow in action
Git flow in actionGit flow in action
Git flow in action
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 

Viewers also liked

Management
ManagementManagement
Management
uzcateguidf
 
Daniel lopez estilista
Daniel lopez estilistaDaniel lopez estilista
Daniel lopez estilista
3672dan
 
Quintero
QuinteroQuintero
Quintero
Google
 
201604_Speciale_SPS_Italia_2016
201604_Speciale_SPS_Italia_2016201604_Speciale_SPS_Italia_2016
201604_Speciale_SPS_Italia_2016
Daniela Previtali
 

Viewers also liked (20)

présentation Alpes
présentation Alpesprésentation Alpes
présentation Alpes
 
EEO No Fear Training Slides - 2014
EEO No Fear Training Slides - 2014EEO No Fear Training Slides - 2014
EEO No Fear Training Slides - 2014
 
Scotsman refrigeration
Scotsman refrigerationScotsman refrigeration
Scotsman refrigeration
 
Management
ManagementManagement
Management
 
Rutas Temáticas de la Costa Blanca
Rutas Temáticas de la Costa BlancaRutas Temáticas de la Costa Blanca
Rutas Temáticas de la Costa Blanca
 
Daniel lopez estilista
Daniel lopez estilistaDaniel lopez estilista
Daniel lopez estilista
 
Cartelera de los sueños (1)
Cartelera de los sueños (1)Cartelera de los sueños (1)
Cartelera de los sueños (1)
 
Baby's letter (slideshow)
Baby's letter (slideshow)Baby's letter (slideshow)
Baby's letter (slideshow)
 
Quintero
QuinteroQuintero
Quintero
 
Web visible e invisible
Web visible e invisibleWeb visible e invisible
Web visible e invisible
 
Mastitis metodo diagnostico
Mastitis  metodo diagnosticoMastitis  metodo diagnostico
Mastitis metodo diagnostico
 
Zen y el arte de pescar APT
Zen y el arte de pescar APTZen y el arte de pescar APT
Zen y el arte de pescar APT
 
Revista Catalunya 93 - gener 2008
Revista Catalunya  93 - gener 2008Revista Catalunya  93 - gener 2008
Revista Catalunya 93 - gener 2008
 
Las potencias y las raices cuadradas ilde
Las potencias y las raices cuadradas ildeLas potencias y las raices cuadradas ilde
Las potencias y las raices cuadradas ilde
 
Deber%20 de%20informatica%20%28%28andres%20chuquimarca%2c%20fiama%20leon%2c%2...
Deber%20 de%20informatica%20%28%28andres%20chuquimarca%2c%20fiama%20leon%2c%2...Deber%20 de%20informatica%20%28%28andres%20chuquimarca%2c%20fiama%20leon%2c%2...
Deber%20 de%20informatica%20%28%28andres%20chuquimarca%2c%20fiama%20leon%2c%2...
 
Webinar: Effektiven Return on Ad Spend (ROAS) über personalisierte Facebook-...
 Webinar: Effektiven Return on Ad Spend (ROAS) über personalisierte Facebook-... Webinar: Effektiven Return on Ad Spend (ROAS) über personalisierte Facebook-...
Webinar: Effektiven Return on Ad Spend (ROAS) über personalisierte Facebook-...
 
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud StackInfracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
Infracoders Graz, smartOS - vom Netzwerk in der Box - zum Software Cloud Stack
 
201604_Speciale_SPS_Italia_2016
201604_Speciale_SPS_Italia_2016201604_Speciale_SPS_Italia_2016
201604_Speciale_SPS_Italia_2016
 
Profi, Sin MúSica
Profi, Sin MúSicaProfi, Sin MúSica
Profi, Sin MúSica
 
Nuevo modelo de gestión de la prevención de INVATE y el COIICV
Nuevo modelo de gestión de la prevención de INVATE y el COIICVNuevo modelo de gestión de la prevención de INVATE y el COIICV
Nuevo modelo de gestión de la prevención de INVATE y el COIICV
 

Similar to Petit Déjeuner Git chez Makina Corpus

Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
Pape Diop
 
Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.fr
liberation_dev
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
SimpleLearn1
 

Similar to Petit Déjeuner Git chez Makina Corpus (20)

Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur Git
 
Introduction à git
Introduction à gitIntroduction à git
Introduction à git
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdf
 
Git pratique
Git pratiqueGit pratique
Git pratique
 
Git pratique
Git pratiqueGit pratique
Git pratique
 
Qt4 et 5 pour Linux embarqué
Qt4 et 5 pour Linux embarquéQt4 et 5 pour Linux embarqué
Qt4 et 5 pour Linux embarqué
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, Kubernetes
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
Des poneys à Liberation.fr
Des poneys à Liberation.frDes poneys à Liberation.fr
Des poneys à Liberation.fr
 
GIT Fundamentals
GIT FundamentalsGIT Fundamentals
GIT Fundamentals
 
3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
 
Un peu de sel pour être HAPI
Un peu de sel pour être HAPIUn peu de sel pour être HAPI
Un peu de sel pour être HAPI
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
 
Introduction à Git
Introduction à GitIntroduction à Git
Introduction à Git
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à Git
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 

Petit Déjeuner Git chez Makina Corpus

  • 1. La gestion de version avec Git ([ʒit] [git]) mathieu.leplatre@makina-corpus.com Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 2. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 3. SubVersioN : CVS done right «There is no way to do CVS right. » - Linus Torvalds Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 4. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 5. La Petite Histoire 2002 ● Linus choisit BitKeeper pour le noyau Linux ● « Merge » facilité ● Non-linéaire ● Décentralisé 2005 ● 17000 fichiers, 6 millions de lignes ● 400 développeurs ● 3 patches/heure, 3200 lignes/jour ● Une version = 5000 patchs Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 6. La Petite Histoire 2005 ● 5 Avril : BitKeeper devient payant ● 6 Avril : Linus annonce son prototype « Git » ● 7 Avril : Une instance est hébergée chez lui ● 18 Avril : Merge multiple de branches ● 16 Juin : Sortie du noyau 2.6.12 géré sur Git 2011 ● Septembre : 1 million d'utilisateurs sur GitHub Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 7. « I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git. » - Linus Torvalds Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 8. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 9. Les Avantages : 1 - décentralisé ● Local Dev ● N'importe où ! ● Mode déconnecté Public ● Serveur facultatif ● Distant ● Branche par branche ● Publication @server ● Déploiement /home ● ex : heroku.com SVN Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 10. Les Avantages : 2 – léger ● Un clone parfait ● = complet ● Rapide ! ● Réseau seulement pour synchroniser ● Ultra-performant ! ● Ne stocke que les « diff »  ● Ex : Mozilla 12Go → 420Mo ● Branches et Tags ● = fichiers métadonnées ● Transport : SSH, FTP, HTTP, WebDAV, Email... Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 11. Les Avantages : 3 – branché $ svn merge -r11:10 http://svn/svn/my_repos/test $ svn: REPORT request failed on '/svn/my_repos/!svn/bc/11/test' $ svn: MERGE request failed on '/svn/repository/trunk' $ svn: MERGE of '/svn/repository/trunk': 200 OK (http://svn.myserver.com) Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 12. Les Avantages : 3 – branché ● Vue graphique ● Locales et/ou distantes ● Algorithmes de fusion (« merge ») ● Déplacement (« rebase ») ● Avec suivi (« track ») Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 13. Les Avantages : 3 – branché ● Manipulation facilitée ● C'est le core committer celui qui développe, qui gère les conflits ! ● « pull request » ● Nouveaux paradigmes (« Git Flow ») ● 1 version = 1 branche ● 1 feature = 1 branche ● Brouillon ? → branche ! ● Temporaire ? → branche ! ● Interrompu ? → branche ! Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 14. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 15. Scénario d'utilisation ● Initialisation $ cd demo $ git init . Initialized empty Git repository gitg est ton ami ● Premières contributions dans master $ git add README $ git commit -m "Premier" (edition de README) $ git commit -a -m "Deuxième" Local! Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 16. Scénario d'utilisation ● Ajout d'un dépôt distant $ git remote add origin git://you@server/demo.git/  ● Synchronisation : envoi $ git push origin master Local Distant ● Synchronisation : réception $ git pull origin master ● commit != push Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 17. Scénario d'utilisation ● Travail en local Désynchro ● Collaboration Distant $ git fetch origin Local Commit ajouté ● Fusion ! $ git merge origin/master git pull = Fetch+Merge Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 18. Scénario d'utilisation Départ ● Nouvelle branche $ git branch refactor $ git checkout refactor ... ... $ git commit -m "Changement" ● Fusionner avec master $ git merge master ou ● Repositionner refactor $ git rebase master Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 19. Scénario d'utilisation ● Tagger une version $ git tag 1.0 ● Se rendre à un commit antérieur $ git checkout 1.0 $ git checkout 0ec2ab ● Annuler les derniers commits $ git reset HEAD~1 Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 20. Et maintenant ? $ sudo aptitude install git ● Dispo sur GNU/Linux, OS X, BSD, Solaris, AIX, BeOS... et Windows ● Eclipse Indigo 3.7 : Egit ● TurtoiseGit ● git-svn : mirroir Git d'un dépôt Subversion ● git mergetool : Utilise meld par ex. pour résoudre les conflits ● Server Git  = Server SSH + git init --bare /path/repo ● http://github.com ● http://gitorious.org Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  • 21. ReconVersion SubVersion Git trunk master svn checkout git clone (+git checkout) svn commit git commit -a + git push svn update git pull svn add git add svn merge -r 20:HEAD git merge branch http://example.com/svn/branches/branch svn copy http://example.com/svn/trunk git tag name http://example.com/svn/tags/name svn copy http://example.com/svn/trunk git branch branch http://example.com/svn/branches/branch git checkout branch svn switch http://example.com/svn/branches/branch Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.