Successfully reported this slideshow.

Petit Déjeuner Git chez Makina Corpus

1,827 views

Published on

18 Octobre 2011

Published in: Technology
  • Be the first to comment

  • Be the first to like this

Petit Déjeuner Git chez Makina Corpus

  1. 1. La gestion de version avec Git ([ʒit] [git]) mathieu.leplatre@makina-corpus.comMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  2. 2. La petite histoire Les avantages Scénario dutilisationMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  3. 3. SubVersioN : CVS done right «There is no way to do CVS right. » - Linus TorvaldsMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  4. 4. La petite histoire Les avantages Scénario dutilisationMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  5. 5. La Petite Histoire2002 ● 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 patchsMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  6. 6. La Petite Histoire2005 ● 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 Git2011 ● Septembre : 1 million dutilisateurs sur GitHubMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  7. 7. « Im an egotistical bastard, and I name all my projects after myself. First Linux, now git. » - Linus TorvaldsMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  8. 8. La petite histoire Les avantages Scénario dutilisationMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  9. 9. Les Avantages : 1 - décentralisé ● Local Dev ● Nimporte où ! ● Mode déconnecté Public ● Serveur facultatif ● Distant ● Branche par branche ● Publication @server ● Déploiement /home ● ex : heroku.com SVNMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  10. 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. 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. 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. 13. Les Avantages : 3 – branché ● Manipulation facilitée ● Cest 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. 14. La petite histoire Les avantages Scénario dutilisationMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  15. 15. Scénario dutilisation ● 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. 16. Scénario dutilisation ● Ajout dun 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 != pushMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  17. 17. Scénario dutilisation ● Travail en local Désynchro ● Collaboration Distant$ git fetch origin Local Commit ajouté ● Fusion !$ git merge origin/mastergit pull = Fetch+MergeMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  18. 18. Scénario dutilisation 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 masterMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  19. 19. Scénario dutilisation ● 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~1Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  20. 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 dun 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.orgMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  21. 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/branchMakina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.

×