DÉVELOPPEZ AUTREMENT
RETOUR
D'EXPÉRIENCE
“pourquoi je me suis intéressé à GIT”
LE CONTEXTE
2008, chez un éditeur de soft au luxembourg
Le produit est sous Subversion
Différentes versions parralèlles à maintenir (3.9, 4.0,
etc.)
Des versions customs pour certains clients
Application découpée en modules
Equipes de développement dans différents sites (LU,
FR, ZA, SP)
Besoin de développer off-line (dans l'avion, chez un
client, etc. )
LE CHOIX DE GIT
Distribué
Workflow adaptable
Intégrations avec nos outils (forge, PIC, etc.)
MISE EN PLACE
Workflow basé sur des topic-branches:
un ticket = une branche
Les versions de maintenance sur des branches à long
terme
Roles d'intégrateurs
CONTSTAT
Premières semaines difficles (notamment les merges)
pour les non-teckos, mais réglé par une formation
interne d'une demi journée
Outils s'adapte aux processus en places (et non
l'inverse)
Productivité et qualité amélioré après quelques
semaines.
HISTORIQUE
“GIT (noun): a person who is deemed to be
despicable or contemptible”
2005
Linus 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.
DESIGN
Distribué
Sûre (aucune perte de données)
Rapide
Et surtout :
prendre CVS comme exemple de ce qu'il ne faut pas faire
(ie. Subversion)
RÉALISATION
Démarré le 3 avril 2005
Annoncé le 6 avril 2005
1ère release du Kernel avec GIT, le 16 juin 2005
Le 26 juillet, le projet passe en maintenance et passe
dans les mains de Junio Hamano (toujours mainteneur).
CARACTÉRITIQUES
PRINCIPALES
“Au final c'est quoi GIT?”
DVCS
Complètement distribué
En ligne de commande
Il n'utilise pas de deltas mais des "packfiles", ce qui le
différencie des autres DCVS
Support de gros projets
Fait pour le merge et la gestion des branches
Orienté boite à outils
Bien intégré (par exemple, utilise des protocoles
existants)
DELTAS
PACKFILES
HISTORIQUE
FONCTIONNEMENT
“C'est compliqué?”
LES BASES
Toujours avoir à l'esprit que GIT est distribué
Une sheat cheet intérative
LES BRANCHES...
... LES BRANCHES
Types
Local
Remote
Local tracking Remote
Utilisation
Topic branches
Long term branches
Worflow based branches
Statégies de fusion
Merge
Rebase
Cherry pick
MERGE...
...MERGE
GIT FLAVOURS
“Killer features”
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
WORKFLOWS
“Je fait ce qu'il me plait...”
SUBVERSION-STYLE WORKFLOW
Un dépots distant qui centralise les dépôts locaux.
Attention aux merges!
INTEGRATION MANAGER WORKFLOW
Une seule personne (l'intégration manager) fait les merges
et commit vers le blessed repository
DICTATOR AND LIEUTENANTS WORKFLOW
Modèle à la Linux Kernel.
Pour les gros projets
TOOLS
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
GITHUB
RÉFÉRENCES
WEB
git-scm.com
git.wiki.kernel.org
BOOK

Git développez autrement