SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
La gestion de configuration qui vous
            veut du bien
Faisons connaissance



               David Gageot

            CTO algodeal.com
            The Crowd Sourced
            Quant Hedge Fund

                   @dgageot
                 javabien.net
         http://infinitest.github.com
Nous allons parler de...

                                Gestion
            Refactoring        de sources


  Gain
de temps


                                   Intégration
                                    continue
            Travail
           en équipe
...mais aussi de...




    Bottes                                  Yoda
   de Foin




                                    Sandwich
                                   au fromage
  Men
in Black
Ca vous va ?




               Photo: http://www.flickr.com/photos/91082225@N00/3271601712
Git


Genre : Gestion de version
Date de naissance : 2005
Créateur : Linus Torvald
Licence : GPL

Signes distinctifs :
Pas besoin de serveur
Chaque utilisateur a une
copie de l’historique
Fonctionne en déconnecté
               Photo:http://getch.files.wordpress.com/2009/02/mask-linus_torvalds.jpg
La concurrence
Avant d’aller plus loin...
Oubliez tout ce que vous savez




                    http://www.filmbuffonline.com/FBOLNewsreel/wordpress/wp-content/uploads/2009/10/MenInBlack1.jpg
Pas de temps à perdre ?
     Git en action




                          Photo: http://www.flickr.com/photos/zoutedrop/2317065892/
mvn eclipse:eclipse ne fonctionne plus !
   Depuis quand ? Quelle version ?




                          Photo: http://malcontenta.blog.lemonde.fr/files/2008/06/chaplin-les-temps-modernes.1212659628.jpg
Tester toutes les versions précédentes ?




                                 Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/
Dichotomie :

La dichotomie (« couper en deux » en grec)
est, en algorithmique, un processus itératif ou
récursif de recherche où, à chaque étape, on
coupe en deux parties (pas forcément égales)
un espace de recherche qui devient restreint à
l'une de ces deux parties.

                                     Wikipedia
A la main, ça reste long




                  Photo: http://www.wallfizz.com/nature/plaine-et-prairie/2714-botte-de-foin-dans-un-champ-WallFizz.jpg
Surtout avec des branches




                            Photo: http://farm1.static.flickr.com/154/356715278_0e0cfe107c.jpg
Git bisect
 (démo)




      Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
git bisect
Partageons quelques
      tours de magie
      « La gestion de
configuration sans serveur »
 « Le merge omniscient »
  « Le build incassable »




             Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
« La gestion de configuration
        sans serveur »




           Photo: http://www.allocine.fr/film/fichefilm-20588/affiches/detail/?cmediafile=18930405
Mettre un répertoire en gestion de configuration
        Sans serveur, sans administrateur
Mettre un répertoire en gestion de configuration


                    Quand ?
   Avant d’éditer des fichiers de configuration
            Pour préparer une démo
         Avant de mettre à jour Eclipse
                        ...

                     Où ?
           Clef USB, Disque externe

       Permet de se faire la main sur Git
Git & Gitx
 (démo)




      Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
Commits locaux




   Amélioration


   Correctif


   Première version
Branches locales


master                  branche

         Amélioration         Ajout 2


         Correctif            Ajout 1


         Première version
Fusion de branches


master      merge branche

                               branche

            Amélioration         Ajout 2


            Correctif            Ajout 1


            Première version
One more thing...


master     Suite fonctionnalité B



           Suite fonctionnalité A


           Début fonctionnalité B


           Début fonctionnalité A
Git rebase -i


master   Suite fonctionnalité B



         Début fonctionnalité B


         Suite fonctionnalité A


         Début fonctionnalité A
Git rebase -i (suite)




master

         Fonctionnalité B



         Fonctionnalité A
Partagé                         Vous
                                              savez presque
                                                  tout !




Faire une copie locale de tout l’historique




    Pousser/récupérer les modifications
Partagé




Partage de sources dans une équipe
 Pas de notion de maître / esclave

Chacun peut faire des modifications
   et récupérer celles des autres

       Pas d’administrateur
Cercles de confiance


       Référence
pull




                       Committer
Cercles de confiance




Mode Open Source : noyaux linux

      Pas de droits d’accès

      Pas d’administrateur

 Modèle pour une grosse équipe
Centralisé




             Créer un repository
                   central


              Faire une copie
                   locale
Centralisé



           A la Subversion

Chaque clone connait tout l’historique

     Travail en mode déconnecté

           Backup gratuite
(Encore un administrateur de moins...)
Git Hub
Comme à la maison
Git permet de suivre son propre workflow




                              Photo: http://www.e-cart.biz/stores/vintage-metal-art/images/custom_tailor.gif
Un vrai projet
   (démo)




        Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
Collaborer, ça veut dire quoi ?



                                Fichiers




Développeurs
Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
«Le merge omniscient»




Photo: http://www.computerweekly.com/PhotoGalleries/235697/944_20_Cerebro-X-Men-Origins-Wolverine-Gadgets-and-Weapons.JPG
Faire un merge c’est difficile
     Frein au refactoring




                         Photo: http://img4.southernliving.com/i/2007/01/grilled-cheese/melted-cheese-l.jpg
Cas d’école

Modifier un fichier pendant qu’un
 autre développeur le renomme




       Casse tête assuré
Exemples



       Renommer tous les
            packages
        com.tech4quant
        en com.algodeal

    Découper un projet maven
        en sous projets




              Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
Keep it Simple Stupid
Pas besoin de plugin. Juste find, mv, sed
Keep it Simple Stupid
Sans code freeze
Un Build Manager dans la salle ?




                               Photo: http://flickr.com/photos/8459432@N03/3446187475
Un vrai projet Java
vu avec l’outil Gource
       (démo)




           Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
«Le build incassable»




Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg
Intégration continue
Hudson, Cruise Control, Team City ?
Et si le build n’était jamais cassé ?
Un petit script suffit
Un petit dessin...
Partagé


                      puis publie

                         Teste

         clone
Perso              Build privé


                 Mon Poste de travail
Plus de pause café pendant le build




                              Photo: http://farm3.static.flickr.com/2698/4041033176_80072af942.jpg
Cette présentation est loin d’être exhaustive


       add -p                checkout
                                              revert
                 cherry-pick
diff
                     reset     filter-branch    stash
       hooks

                                        log
               tag            tig
                                         git blame
 instaweb              whatchanged                 clean
«Git demain adopter tu dois, jeune Padawan»




                                 Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg
Je commence demain
GitX
Git-svn




 Passerelle bi-directionnelle vers
            Subversion

Permet de travailler sous git tout en
       publiant dans SVN
Limites de Git-svn




 Pas accès à toute la puissance de git.

Pas compatible avec toutes les mises en
           oeuvre de SVN
Merci
Questions / Réponses
Faisons connaissance



               David Gageot

            CTO algodeal.com
            The Crowd Sourced
            Quant Hedge Fund

                 @dgageot
               javabien.net

Contenu connexe

Tendances

Git : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebaseGit : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebasejcbaudier
 
Git Tours JUG 2010
Git Tours JUG 2010Git Tours JUG 2010
Git Tours JUG 2010David Gageot
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsJohan Moreau
 
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éECAM Brussels Engineering School
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueRossi Oddet
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte Zenika
 
Atelier Git + GitHub
Atelier Git + GitHubAtelier Git + GitHub
Atelier Git + GitHubspamaert
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsWeb à Québec
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinLudovic Piot
 
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Jean-Marc Fontaine
 
Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Jean-Marc Fontaine
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerThibaut Marmin
 
Conférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinConférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinNormandie Web Xperts
 

Tendances (20)

Git : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebaseGit : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebase
 
Les bases de git
Les bases de gitLes bases de git
Les bases de git
 
Git développez autrement
Git développez autrementGit développez autrement
Git développez autrement
 
Git Tours JUG 2010
Git Tours JUG 2010Git Tours JUG 2010
Git Tours JUG 2010
 
De la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logicielsDe la chaîne de production au SI géré par des logiciels
De la chaîne de production au SI géré par des logiciels
 
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é
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
JCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratiqueJCertif 2012 : Maven par la pratique
JCertif 2012 : Maven par la pratique
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
NightClazz Docker Découverte
NightClazz Docker Découverte NightClazz Docker Découverte
NightClazz Docker Découverte
 
Atelier Git + GitHub
Atelier Git + GitHubAtelier Git + GitHub
Atelier Git + GitHub
 
Julien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printempsJulien Maitrehenry - Docker, ça mange quoi au printemps
Julien Maitrehenry - Docker, ça mange quoi au printemps
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
Docker@linuq
Docker@linuqDocker@linuq
Docker@linuq
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassinOxalide Workshop #4 - Docker, des tours dans le petit bassin
Oxalide Workshop #4 - Docker, des tours dans le petit bassin
 
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
Gérer ses environnements de développement avec vagrant - PHP Tour Nantes 2012
 
Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012Gérer ses environnements de développement avec Vagrant - RMLL 2012
Gérer ses environnements de développement avec Vagrant - RMLL 2012
 
Docker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à DockerDocker Tours Meetup #1 - Introduction à Docker
Docker Tours Meetup #1 - Introduction à Docker
 
Conférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinConférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud Juin
 

En vedette

Weniger Krise – mehr Projekte: Trends im Stillstandsmanagement
Weniger Krise – mehr Projekte: Trends im StillstandsmanagementWeniger Krise – mehr Projekte: Trends im Stillstandsmanagement
Weniger Krise – mehr Projekte: Trends im StillstandsmanagementMateus Siwek
 
Feste 2, Yom Kippur
Feste 2, Yom KippurFeste 2, Yom Kippur
Feste 2, Yom Kippurwusternberg
 
Konsequenzen 202
Konsequenzen 202Konsequenzen 202
Konsequenzen 202ubueeler
 
Best of mensuel-bowers & wilkins - mars
Best of mensuel-bowers & wilkins - marsBest of mensuel-bowers & wilkins - mars
Best of mensuel-bowers & wilkins - marsB&W Group France
 
Reseaux sociaux Quelles opportunites ?
Reseaux sociaux Quelles opportunites ?Reseaux sociaux Quelles opportunites ?
Reseaux sociaux Quelles opportunites ?Catherine Epstein
 
Papierloses Büro- Mobilität ist die Devise
Papierloses Büro- Mobilität ist die DevisePapierloses Büro- Mobilität ist die Devise
Papierloses Büro- Mobilität ist die DeviseAndrea Kaden
 
Soin du visage
Soin du visageSoin du visage
Soin du visageWafa Memmi
 
AMIT BHARADWAJ UNI DOCUMENTS
AMIT BHARADWAJ UNI DOCUMENTSAMIT BHARADWAJ UNI DOCUMENTS
AMIT BHARADWAJ UNI DOCUMENTSAmit Bhardwaj
 
RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...
RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...
RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...R-Evolutions Touristiques de Brive
 
French Festivals
French FestivalsFrench Festivals
French FestivalsSuramya10
 
Komponenten-basierender Review-Prozess - Toni Breitschmid
Komponenten-basierender Review-Prozess - Toni BreitschmidKomponenten-basierender Review-Prozess - Toni Breitschmid
Komponenten-basierender Review-Prozess - Toni Breitschmidtecom
 

En vedette (20)

Weniger Krise – mehr Projekte: Trends im Stillstandsmanagement
Weniger Krise – mehr Projekte: Trends im StillstandsmanagementWeniger Krise – mehr Projekte: Trends im Stillstandsmanagement
Weniger Krise – mehr Projekte: Trends im Stillstandsmanagement
 
Feste 2, Yom Kippur
Feste 2, Yom KippurFeste 2, Yom Kippur
Feste 2, Yom Kippur
 
Konsequenzen 202
Konsequenzen 202Konsequenzen 202
Konsequenzen 202
 
Youngs.
Youngs.Youngs.
Youngs.
 
Best of mensuel-bowers & wilkins - mars
Best of mensuel-bowers & wilkins - marsBest of mensuel-bowers & wilkins - mars
Best of mensuel-bowers & wilkins - mars
 
Reseaux sociaux Quelles opportunites ?
Reseaux sociaux Quelles opportunites ?Reseaux sociaux Quelles opportunites ?
Reseaux sociaux Quelles opportunites ?
 
Atelier4 ouverture d-une_ligne_aerienne
Atelier4 ouverture d-une_ligne_aerienneAtelier4 ouverture d-une_ligne_aerienne
Atelier4 ouverture d-une_ligne_aerienne
 
Papierloses Büro- Mobilität ist die Devise
Papierloses Büro- Mobilität ist die DevisePapierloses Büro- Mobilität ist die Devise
Papierloses Büro- Mobilität ist die Devise
 
Quimica cch (1)
Quimica cch (1)Quimica cch (1)
Quimica cch (1)
 
thérapeutique
thérapeutiquethérapeutique
thérapeutique
 
Agile Mëtteg - mars 2011
Agile Mëtteg - mars 2011Agile Mëtteg - mars 2011
Agile Mëtteg - mars 2011
 
Soin du visage
Soin du visageSoin du visage
Soin du visage
 
AMIT BHARADWAJ UNI DOCUMENTS
AMIT BHARADWAJ UNI DOCUMENTSAMIT BHARADWAJ UNI DOCUMENTS
AMIT BHARADWAJ UNI DOCUMENTS
 
Pleniere soir operation-c_est_vrai_qu_en_corse-p_rompler
Pleniere soir operation-c_est_vrai_qu_en_corse-p_romplerPleniere soir operation-c_est_vrai_qu_en_corse-p_rompler
Pleniere soir operation-c_est_vrai_qu_en_corse-p_rompler
 
RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...
RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...
RTB - Atelier 3 - moi directeur d'office, quelle responsabilité et quelle dél...
 
Kaizen
KaizenKaizen
Kaizen
 
Schwimmteich 6.6.2010
Schwimmteich 6.6.2010Schwimmteich 6.6.2010
Schwimmteich 6.6.2010
 
French Festivals
French FestivalsFrench Festivals
French Festivals
 
Komponenten-basierender Review-Prozess - Toni Breitschmid
Komponenten-basierender Review-Prozess - Toni BreitschmidKomponenten-basierender Review-Prozess - Toni Breitschmid
Komponenten-basierender Review-Prozess - Toni Breitschmid
 
Test 4
Test 4Test 4
Test 4
 

Similaire à Git

JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueRossi Oddet
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdfbadrfathallah2
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Gitmsadouni
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continueStéphane HULARD
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfChris Saez
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVNneuros
 
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Makina Corpus
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsJulien Wittouck
 
Drupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GITDrupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GITArtusamak
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfHamida Rebai Trabelsi
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation MavenArnaud Héritier
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à GitPierre Templier
 
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!.pdfSimpleLearn1
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache MavenArnaud Héritier
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienneSylvain Witmeyer
 

Similaire à Git (20)

SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
JCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratiqueJCertif 2012 : Git par la pratique
JCertif 2012 : Git par la pratique
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdf
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
 
Spring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'tsSpring Boot & Containers - Do's & Don'ts
Spring Boot & Containers - Do's & Don'ts
 
Drupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GITDrupalcamp Nantes - Présentation GIT
Drupalcamp Nantes - Présentation GIT
 
Configurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdfConfigurer GitHub Actions avec Docker et DotNET 8.pdf
Configurer GitHub Actions avec Docker et DotNET 8.pdf
 
20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven20081023 - Paris Vi Master STL TA - Initiation Maven
20081023 - Paris Vi Master STL TA - Initiation Maven
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à Git
 
GWT no-dto
GWT no-dtoGWT no-dto
GWT no-dto
 
Javascript proprement
Javascript proprementJavascript proprement
Javascript proprement
 
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
 
20081008 - Tours Jug - Apache Maven
20081008  - Tours Jug - Apache Maven20081008  - Tours Jug - Apache Maven
20081008 - Tours Jug - Apache Maven
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 

Plus de Normandy JUG

Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...
Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...
Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...Normandy JUG
 
Codeurs En Seine - Lean startup - Matthieu Garde-Lebreton
Codeurs En Seine - Lean startup - Matthieu Garde-LebretonCodeurs En Seine - Lean startup - Matthieu Garde-Lebreton
Codeurs En Seine - Lean startup - Matthieu Garde-LebretonNormandy JUG
 
What makes groovy groovy codeurs en seine - 2013 - light size
What makes groovy groovy   codeurs en seine - 2013 - light sizeWhat makes groovy groovy   codeurs en seine - 2013 - light size
What makes groovy groovy codeurs en seine - 2013 - light sizeNormandy JUG
 
[Codeurs en seine] management & monitoring cloud
[Codeurs en seine] management & monitoring cloud[Codeurs en seine] management & monitoring cloud
[Codeurs en seine] management & monitoring cloudNormandy JUG
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Normandy JUG
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Normandy JUG
 
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)Normandy JUG
 
Soirée Ceylon avec Stéphane Epardaud
Soirée Ceylon avec Stéphane EpardaudSoirée Ceylon avec Stéphane Epardaud
Soirée Ceylon avec Stéphane EpardaudNormandy JUG
 
Soirée Guava et Lombok avec Thierry Leriche
Soirée Guava et Lombok avec Thierry LericheSoirée Guava et Lombok avec Thierry Leriche
Soirée Guava et Lombok avec Thierry LericheNormandy JUG
 
Couche Base par Tugdual Grall
Couche Base par Tugdual GrallCouche Base par Tugdual Grall
Couche Base par Tugdual GrallNormandy JUG
 
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetApache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetNormandy JUG
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilNormandy JUG
 
Annotations Java par Olivier Croisier
Annotations Java par Olivier CroisierAnnotations Java par Olivier Croisier
Annotations Java par Olivier CroisierNormandy JUG
 
Spring Batch 17-05-2011
Spring Batch 17-05-2011Spring Batch 17-05-2011
Spring Batch 17-05-2011Normandy JUG
 
ATR2011 - Planning poker
ATR2011 - Planning pokerATR2011 - Planning poker
ATR2011 - Planning pokerNormandy JUG
 
ATR2011 - Scrum dans les tranchées Normandes
ATR2011 - Scrum dans les tranchées NormandesATR2011 - Scrum dans les tranchées Normandes
ATR2011 - Scrum dans les tranchées NormandesNormandy JUG
 
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computingNormandy JUG
 
Soirée BPM - Introduction Logica
Soirée BPM - Introduction LogicaSoirée BPM - Introduction Logica
Soirée BPM - Introduction LogicaNormandy JUG
 

Plus de Normandy JUG (20)

Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...
Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...
Découvrez les bases de l’ergonomie web : donnez à vos utilisateurs le meilleu...
 
Codeurs En Seine - Lean startup - Matthieu Garde-Lebreton
Codeurs En Seine - Lean startup - Matthieu Garde-LebretonCodeurs En Seine - Lean startup - Matthieu Garde-Lebreton
Codeurs En Seine - Lean startup - Matthieu Garde-Lebreton
 
What makes groovy groovy codeurs en seine - 2013 - light size
What makes groovy groovy   codeurs en seine - 2013 - light sizeWhat makes groovy groovy   codeurs en seine - 2013 - light size
What makes groovy groovy codeurs en seine - 2013 - light size
 
[Codeurs en seine] management & monitoring cloud
[Codeurs en seine] management & monitoring cloud[Codeurs en seine] management & monitoring cloud
[Codeurs en seine] management & monitoring cloud
 
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
Fork / Join, Parallel Arrays, Lambdas : la programmation parallèle (trop ?) f...
 
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
Capacity Planning : Pratiques et outils pour regarder la foudre tomber sans p...
 
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
Gatling : Faites tomber la foudre sur votre serveur ! (Stéphane Landelle)
 
Soirée Ceylon avec Stéphane Epardaud
Soirée Ceylon avec Stéphane EpardaudSoirée Ceylon avec Stéphane Epardaud
Soirée Ceylon avec Stéphane Epardaud
 
Soirée Guava et Lombok avec Thierry Leriche
Soirée Guava et Lombok avec Thierry LericheSoirée Guava et Lombok avec Thierry Leriche
Soirée Guava et Lombok avec Thierry Leriche
 
Couche Base par Tugdual Grall
Couche Base par Tugdual GrallCouche Base par Tugdual Grall
Couche Base par Tugdual Grall
 
Java7 normandyjug
Java7 normandyjugJava7 normandyjug
Java7 normandyjug
 
Apache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume NodetApache, osgi and karaf par Guillaume Nodet
Apache, osgi and karaf par Guillaume Nodet
 
Mockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice DuteilMockito - Design + tests par Brice Duteil
Mockito - Design + tests par Brice Duteil
 
Annotations Java par Olivier Croisier
Annotations Java par Olivier CroisierAnnotations Java par Olivier Croisier
Annotations Java par Olivier Croisier
 
Spring Batch 17-05-2011
Spring Batch 17-05-2011Spring Batch 17-05-2011
Spring Batch 17-05-2011
 
ATR2011 - Planning poker
ATR2011 - Planning pokerATR2011 - Planning poker
ATR2011 - Planning poker
 
ATR2011 - Scrum dans les tranchées Normandes
ATR2011 - Scrum dans les tranchées NormandesATR2011 - Scrum dans les tranchées Normandes
ATR2011 - Scrum dans les tranchées Normandes
 
Hibernate vs le_cloud_computing
Hibernate vs le_cloud_computingHibernate vs le_cloud_computing
Hibernate vs le_cloud_computing
 
HTML5 en projet
HTML5 en projetHTML5 en projet
HTML5 en projet
 
Soirée BPM - Introduction Logica
Soirée BPM - Introduction LogicaSoirée BPM - Introduction Logica
Soirée BPM - Introduction Logica
 

Git

  • 1. La gestion de configuration qui vous veut du bien
  • 2. Faisons connaissance David Gageot CTO algodeal.com The Crowd Sourced Quant Hedge Fund @dgageot javabien.net http://infinitest.github.com
  • 3. Nous allons parler de... Gestion Refactoring de sources Gain de temps Intégration continue Travail en équipe
  • 4. ...mais aussi de... Bottes Yoda de Foin Sandwich au fromage Men in Black
  • 5. Ca vous va ? Photo: http://www.flickr.com/photos/91082225@N00/3271601712
  • 6. Git Genre : Gestion de version Date de naissance : 2005 Créateur : Linus Torvald Licence : GPL Signes distinctifs : Pas besoin de serveur Chaque utilisateur a une copie de l’historique Fonctionne en déconnecté Photo:http://getch.files.wordpress.com/2009/02/mask-linus_torvalds.jpg
  • 8. Avant d’aller plus loin... Oubliez tout ce que vous savez http://www.filmbuffonline.com/FBOLNewsreel/wordpress/wp-content/uploads/2009/10/MenInBlack1.jpg
  • 9. Pas de temps à perdre ? Git en action Photo: http://www.flickr.com/photos/zoutedrop/2317065892/
  • 10. mvn eclipse:eclipse ne fonctionne plus ! Depuis quand ? Quelle version ? Photo: http://malcontenta.blog.lemonde.fr/files/2008/06/chaplin-les-temps-modernes.1212659628.jpg
  • 11. Tester toutes les versions précédentes ? Photo: http://www.flickr.com/photos/tarchamps/2835943555/sizes/l/
  • 12. Dichotomie : La dichotomie (« couper en deux » en grec) est, en algorithmique, un processus itératif ou récursif de recherche où, à chaque étape, on coupe en deux parties (pas forcément égales) un espace de recherche qui devient restreint à l'une de ces deux parties. Wikipedia
  • 13. A la main, ça reste long Photo: http://www.wallfizz.com/nature/plaine-et-prairie/2714-botte-de-foin-dans-un-champ-WallFizz.jpg
  • 14. Surtout avec des branches Photo: http://farm1.static.flickr.com/154/356715278_0e0cfe107c.jpg
  • 15. Git bisect (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 17. Partageons quelques tours de magie « La gestion de configuration sans serveur » « Le merge omniscient » « Le build incassable » Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 18. « La gestion de configuration sans serveur » Photo: http://www.allocine.fr/film/fichefilm-20588/affiches/detail/?cmediafile=18930405
  • 19. Mettre un répertoire en gestion de configuration Sans serveur, sans administrateur
  • 20. Mettre un répertoire en gestion de configuration Quand ? Avant d’éditer des fichiers de configuration Pour préparer une démo Avant de mettre à jour Eclipse ... Où ? Clef USB, Disque externe Permet de se faire la main sur Git
  • 21. Git & Gitx (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 22. Commits locaux Amélioration Correctif Première version
  • 23. Branches locales master branche Amélioration Ajout 2 Correctif Ajout 1 Première version
  • 24. Fusion de branches master merge branche branche Amélioration Ajout 2 Correctif Ajout 1 Première version
  • 25. One more thing... master Suite fonctionnalité B Suite fonctionnalité A Début fonctionnalité B Début fonctionnalité A
  • 26. Git rebase -i master Suite fonctionnalité B Début fonctionnalité B Suite fonctionnalité A Début fonctionnalité A
  • 27. Git rebase -i (suite) master Fonctionnalité B Fonctionnalité A
  • 28. Partagé Vous savez presque tout ! Faire une copie locale de tout l’historique Pousser/récupérer les modifications
  • 29. Partagé Partage de sources dans une équipe Pas de notion de maître / esclave Chacun peut faire des modifications et récupérer celles des autres Pas d’administrateur
  • 30. Cercles de confiance Référence pull Committer
  • 31. Cercles de confiance Mode Open Source : noyaux linux Pas de droits d’accès Pas d’administrateur Modèle pour une grosse équipe
  • 32. Centralisé Créer un repository central Faire une copie locale
  • 33. Centralisé A la Subversion Chaque clone connait tout l’historique Travail en mode déconnecté Backup gratuite (Encore un administrateur de moins...)
  • 35. Comme à la maison Git permet de suivre son propre workflow Photo: http://www.e-cart.biz/stores/vintage-metal-art/images/custom_tailor.gif
  • 36. Un vrai projet (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 37. Collaborer, ça veut dire quoi ? Fichiers Développeurs
  • 39. «Le merge omniscient» Photo: http://www.computerweekly.com/PhotoGalleries/235697/944_20_Cerebro-X-Men-Origins-Wolverine-Gadgets-and-Weapons.JPG
  • 40. Faire un merge c’est difficile Frein au refactoring Photo: http://img4.southernliving.com/i/2007/01/grilled-cheese/melted-cheese-l.jpg
  • 41. Cas d’école Modifier un fichier pendant qu’un autre développeur le renomme Casse tête assuré
  • 42. Exemples Renommer tous les packages com.tech4quant en com.algodeal Découper un projet maven en sous projets Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 43. Keep it Simple Stupid Pas besoin de plugin. Juste find, mv, sed
  • 44. Keep it Simple Stupid
  • 45. Sans code freeze Un Build Manager dans la salle ? Photo: http://flickr.com/photos/8459432@N03/3446187475
  • 46. Un vrai projet Java vu avec l’outil Gource (démo) Photo: http://www.flickr.com/photos/joshwellington/3929748847/sizes/o/
  • 47. «Le build incassable» Photo: http://4.bp.blogspot.com/_OhGGUzXs2IY/SlcDgkq4riI/AAAAAAAAB3Y/5uoio0yUue8/s1600-h/Affiche+1.jpg
  • 48. Intégration continue Hudson, Cruise Control, Team City ?
  • 49. Et si le build n’était jamais cassé ?
  • 50. Un petit script suffit
  • 52. Partagé puis publie Teste clone Perso Build privé Mon Poste de travail
  • 53. Plus de pause café pendant le build Photo: http://farm3.static.flickr.com/2698/4041033176_80072af942.jpg
  • 54. Cette présentation est loin d’être exhaustive add -p checkout revert cherry-pick diff reset filter-branch stash hooks log tag tig git blame instaweb whatchanged clean
  • 55. «Git demain adopter tu dois, jeune Padawan» Photo: http://networksecurityip.files.wordpress.com/2007/11/yoda.jpg
  • 57. GitX
  • 58. Git-svn Passerelle bi-directionnelle vers Subversion Permet de travailler sous git tout en publiant dans SVN
  • 59. Limites de Git-svn Pas accès à toute la puissance de git. Pas compatible avec toutes les mises en oeuvre de SVN
  • 61. Faisons connaissance David Gageot CTO algodeal.com The Crowd Sourced Quant Hedge Fund @dgageot javabien.net