Successfully reported this slideshow.

Petit Déjeuner Git chez Makina Corpus

0

Share

Upcoming SlideShare
présentation Alpes
présentation Alpes
Loading in …3
×
1 of 21
1 of 21

More Related Content

Related Books

Free with a 14 day trial from Scribd

See all

Related Audiobooks

Free with a 14 day trial from Scribd

See all

Petit Déjeuner Git chez Makina Corpus

  1. 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. 2. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  3. 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. 4. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  5. 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. 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. 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. 8. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  9. 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. 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 ● 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. 14. La petite histoire Les avantages Scénario d'utilisation Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
  15. 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. 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. 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. 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. 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. 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. 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.

×