Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Présentation du versioning avec Git

Présentation du versioning avec Git

Présentation du versioning avec Git au CaenCamp (http://www.caencamp.fr) #5.

Matthieu Sadouni

October 18, 2012
Tweet

Other Decks in Programming

Transcript

  1. problèmes Comment : • avoir un historique de la vie

    du projet ? • revenir en arrière ? • corriger un bug quand on travaille sur autre chose ? • maintenir plusieurs environnements (dev, test, prod) ? • travailler à plusieurs ?
  2. solution enregistrer les changements apportés au code (commit) • ensemble

    de modifications (diff) • message explicatif • date • auteur • identifiant unique
  3. historique - identifier qui a fait quoi et quand -

    revenir à n'importe quelle étape précédente
  4. pourquoi git ? • pérenne car très utilisé : ◦

    industrie : google, facebook, twitter, microsoft... ◦ gros projets open source : linux, android, ruby on rails... • github.com • le plus rapide • facile à installer • « cheap branches »
  5. git au quotidien cd /projet git init git add .

    git commit -m "premier commit" initialiser un projet premier commit Matthieu Sadouni 18/10/2012 abcdef
  6. git au quotidien hack... git add . git commit -m

    "ajout du compte client" enregistrer des modifications premier commit Matthieu Sadouni 18/10/2012 abcdef ajout du compte client Matthieu Sadouni 18/10/2012 fa2c24
  7. git au quotidien corriger un bug git checkout -b correction-bug-123

    hack... git add . git commit -m "bug #123 corrigé" git checkout master git merge correction-bug-123 git branch -d correction-bug-123 premier commit Matthieu Sadouni 18/10/2012 abcdef ajout du compte client Matthieu Sadouni 18/10/2012 fa2c24 bug #123 corrigé Matthieu Sadouni 19/10/2012 6ae3dc Merge commit 6ae3dc Matthieu Sadouni 19/10/2012 8e3c1
  8. # récupérer la liste des nouveaux commits sur le dépôt

    distant # la copie locale n'est pas modifiée git fetch origin git au quotidien travailler à plusieurs # récupérer et fusionner les nouveaux commits sur le dépôt distant avec la branche actuelle # pull = fetch + merge git pull origin master # envoyer les nouveaux commits d'une branche sur le dépôt distant git push origin master
  9. autres bénéfices • versionner autre chose que du code :

    PSD, etc... • base d'un process de qualité : ◦ pour le prestataire ◦ pour le client
  10. C'est comme ne pas mettre sa ceinture de sécurité parce

    qu'on n'a pas encore eu d'accident. conclusion