2. Plan
• But de la présentation
• Genèse
• Système centralisé VS distribué
• Branching
• Staging area et nouveaux Workflows
• Les outils graphiques
• Ressources
3. Pourquoi cette Présentation
Git fait de plus en plus parler de lui :
• De nombreux projets sous Git
o (Git, Linux Kernel, Perl, Eclipse, Gnome, KDE
Qt, Ruby on Rails, Android, PostgreSQL
Debian, X.org, Plone...)
• le nombre total de commit pour la période de Janvier à Mai
2011 de Github est largement supérieur à ceux de
Sourceforge, Google Code et Microsoft CodePlex.
• Systeme de branching au coeur du fonctionnement de Git
4. Au début il y avait BitKeeper...
Kernel.org versionné par BitKeeper
mais sa licence d'utilisation change.
Besoin : VCS rapide, gérant de gros volumes de données
Outils de remplacement : Aucun
5. ...puis vint Git
Linus Torvald crée son propre outil :
• Outil écrit en 5 jours
• Optimisé pour le noyau linux
• exécution rapide des tâches (codé en C)
• Zero perte d'information ( DAG : directed Acyclic Graph ou
graphe orienté acyclique)
• Nombreuses fonctionnalités (détaillées plus loin)
MAIS Git n'est pas un VCS !
7. Différence Svn/Git
Svn : Git:
• checkout récupère la dernière • checkout récupère tout le repo
révision • Pull/push online seulement
• Checkout/commit/diff online • branching base de Git
• branching non historisé • un seul .git par défaut
• plusieurs .svn par sous • gestion de droits (base du
répertoire fonctionnement de Github)
• pas de gestion évoluée de • révision identifiée par
droits hashcode des fichiers
• révisions identifiées par • X workflows possibles
incrément • historise : unversionné, new,
• Workflow centralisé deleted, modifié,modifié "non
• "Annulation" de commit ajouté"
impossible
• historise : unversionné, new,
deleted, modifié
9. Utilisation de Git comme Svn
Git ne revert pas. Tout est mémorisé, même les branches
mergées.
Git aussi a des conflits...mais aucun basé sur le changement
de nom d'un fichier (ou sa suppression).
On peut utiliser Git pour travailler sur Svn
git svn clone http://svn.neuros.fr/...
10. Branching : La principale puissance de Git
Multiples branches locales :création, fusion (merge) ou
suppression en quelques secondes.
On peut :
• Créer une branche pour essayer une nouvelle idée, committer,
revenir à l'endroit où vous avez créé cette branche, appliquer un
patch, retourner là où vous expérimentez et fusionnez le avec votre
branche principale.
• Créer une nouvelle branche pour toutes les fonctionnalités que vous
développez, puis effacer chaque branche une fois que la
fonctionnalité est incluse dans la branche principale.