Upload
msadouni
View
1.005
Download
0
Embed Size (px)
DESCRIPTION
Présentation du versioning avec Git au CaenCamp (http://www.caencamp.fr) #5.
Citation preview
Présentation du versioning avec
Matthieu Sadouni@msadouni
pourquoi ?
méthode "La RACHE" ©
http://www.risacher.com/la-rache/index.php?z=2
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 ?
solutionenregistrer les changements apportés au code (commit)
● ensemble de modifications (diff)● message explicatif● date● auteur● identifiant unique
anatomie d'un commit
bénéfices
historique
- identifier qui a fait quoi et quand- revenir à n'importe quelle étape précédente
développements parallèles
http://nvie.com/posts/a-successful-git-branching-model/
fusion automatique
http://www.flickr.com/photos/foryou/6197709847/
comment ?
centralisé vs distribué
plusieurs outils
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 »
git au quotidien
cd /projetgit initgit add .git commit -m "premier commit"
initialiser un projet
premier commit Matthieu Sadouni 18/10/2012 abcdef
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
git au quotidien
corriger un buggit checkout -b correction-bug-123hack...git add .git commit -m "bug #123 corrigé"git checkout mastergit merge correction-bug-123git 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
# récupérer la liste des nouveaux commits sur le dépôt distant# la copie locale n'est pas modifiéegit 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 + mergegit pull origin master
# envoyer les nouveaux commits d'une branche sur le dépôt distantgit push origin master
existe aussi en GUI
http://harrywolff.com/the-best-mac-git-gui/sourcetree-01/
autres bénéfices
● versionner autre chose que du code : PSD, etc...
● base d'un process de qualité :○ pour le prestataire○ pour le client
C'est comme ne pas mettre sa ceinture de sécurité parce qu'on n'a pas encore eu d'accident.
conclusion
conclusion
filet de sécurité permanent
tranquillité d'esprit
expérimentation facilitée
gains de compétences
questions ?Matthieu Sadouni@msadouni