git développez autrement

34
DÉVELOPPEZ AUTREMENT

Upload: bertrand-chevrier

Post on 18-Jul-2015

189 views

Category:

Technology


1 download

TRANSCRIPT

Page 1: Git développez autrement

DÉVELOPPEZ AUTREMENT

Page 2: Git développez autrement

RETOURD'EXPÉRIENCE“pourquoi je me suis intéressé à GIT”

Page 3: Git développez autrement

LE CONTEXTE2008, chez un éditeur de soft au luxembourgLe produit est sous SubversionDifférentes versions parralèlles à maintenir (3.9, 4.0,etc.)Des versions customs pour certains clientsApplication découpée en modulesEquipes de développement dans différents sites (LU,FR, ZA, SP)Besoin de développer off-line (dans l'avion, chez unclient, etc. )

Page 4: Git développez autrement

LE CHOIX DE GITDistribuéWorkflow adaptableIntégrations avec nos outils (forge, PIC, etc.)

Page 5: Git développez autrement

MISE EN PLACEWorkflow basé sur des topic-branches:un ticket = une brancheLes versions de maintenance sur des branches à longtermeRoles d'intégrateurs

Page 6: Git développez autrement

CONTSTATPremières semaines difficles (notamment les merges)pour les non-teckos, mais réglé par une formationinterne d'une demi journéeOutils s'adapte aux processus en places (et nonl'inverse)Productivité et qualité amélioré après quelquessemaines.

Page 7: Git développez autrement

HISTORIQUE“GIT (noun): a person who is deemed to be

despicable or contemptible”

Page 8: Git développez autrement

2005Linus Torvalds initie le projet pour le Kernel Linux car il a

besoin de changer de CVS (BitKeeper) rapidement.

Il décide d'arrêter Linux tant que ce n'est pas fait.

Page 9: Git développez autrement

DESIGNDistribuéSûre (aucune perte de données)RapideEt surtout :prendre CVS comme exemple de ce qu'il ne faut pas faire(ie. Subversion)

Page 10: Git développez autrement

RÉALISATIONDémarré le 3 avril 2005Annoncé le 6 avril 20051ère release du Kernel avec GIT, le 16 juin 2005Le 26 juillet, le projet passe en maintenance et passedans les mains de Junio Hamano (toujours mainteneur).

Page 11: Git développez autrement

CARACTÉRITIQUESPRINCIPALES

“Au final c'est quoi GIT?”

Page 12: Git développez autrement

DVCSComplètement distribuéEn ligne de commandeIl n'utilise pas de deltas mais des "packfiles", ce qui ledifférencie des autres DCVSSupport de gros projetsFait pour le merge et la gestion des branchesOrienté boite à outilsBien intégré (par exemple, utilise des protocolesexistants)

Page 13: Git développez autrement

DELTAS

Page 14: Git développez autrement

PACKFILES

Page 15: Git développez autrement

HISTORIQUE

Page 16: Git développez autrement

FONCTIONNEMENT“C'est compliqué?”

Page 17: Git développez autrement

LES BASESToujours avoir à l'esprit que GIT est distribué

Une sheat cheet intérative

Page 18: Git développez autrement
Page 19: Git développez autrement

LES BRANCHES...

Page 20: Git développez autrement

... LES BRANCHESTypes

LocalRemoteLocal tracking Remote

UtilisationTopic branchesLong term branchesWorflow based branches

Statégies de fusionMergeRebaseCherry pick

Page 21: Git développez autrement

MERGE...

Page 22: Git développez autrement

...MERGE

Page 23: Git développez autrement

GIT FLAVOURS“Killer features”

Page 24: Git développez autrement

git stash : la cachette

git rebase : faire le ménage

git cherry-pick : la ceuillette aux commits

git submodules : travailler avec plusieurs dépôts

git commit --amend : corriger un commit

git bisect : l'arme ultime pour isoler le commit

fautif

Page 25: Git développez autrement

WORKFLOWS“Je fait ce qu'il me plait...”

Page 26: Git développez autrement

SUBVERSION-STYLE WORKFLOWUn dépots distant qui centralise les dépôts locaux.

Attention aux merges!

Page 27: Git développez autrement

INTEGRATION MANAGER WORKFLOWUne seule personne (l'intégration manager) fait les merges

et commit vers le blessed repository

Page 28: Git développez autrement

DICTATOR AND LIEUTENANTS WORKFLOWModèle à la Linux Kernel.

Pour les gros projets

Page 29: Git développez autrement

TOOLS

Page 30: Git développez autrement

SCM: git-svn, git-cvs, subgit, etc.GUI: TortoiseGit, gitg, giggle, SourceTree, etc.Cloud/Web: Unfuddle, BitBucket, SourceForge, etc.Admin: Gitorious, Gitblit, etc.Entreprise: Github, Atlassion Stash, etc.Kikkoolol: Gource

Page 31: Git développez autrement

GITHUB

Page 32: Git développez autrement

RÉFÉRENCES