Présentation du versioning avec Git

Preview:

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

Recommended