French overview/presentation of GIT
#Git Développez Autrement !
- 2009, chez un éditeur de soft
- produit sous SVN
- versions custom par client
- différentes versions en parallèle à maintenir
- différents modules
- différents sites/équipes de dev (LU, FR, ZA, SP) + off line (on site debug)
- workflow basé sur des features-branches
- Maintenance sur des long term branches
- Roles d'intégrateurs
- Premières semaines difficle pour les nons teckos, mais réglé par une formation interne d'une demi journée
- Outils s'adapte aux processus (et non l'inverse)
- Productivité et qualité amélioré après quelques semaines.
2005 : Linus Torvalds initie le projet suite au besoin de changer le CVS (BitKeeper) pour le Kernel Linux
- Design : distribué, sure, rapide et surtout prendre CVS comme exemple de ce qu'il ne faut pas faire (ie. Subversion)
- Démarré le 3 avril, annoncé le 6.
- Le 16 juin, 1ere release du kernel avec GIT
- le 26 juillet, le projet passe en maintenance et passe dans les main de Junio Hamano
- Complètement distribué
- En ligne de commande !
- Pas de deltas ("packfile") ce qui le différencie des autres DCVS
- Support de gros projets
- Fait pour le merge et la gestion des branches
- Toolkit based design + protocols integration (ssh, tls, http, etc.)
Interactive cheat sheet: http://ndpsoftware.com/git-cheatsheet.html
Types de branches:
- Local / Remote
- local tracking remote
- Orphelines ou non (attention!)
Utilisation de branches:
- Topic branches
- Long term branches
- Worflow based branches
Stategies de merge:
- merging
- rebasing
small demo for each ones
git stash
: la cachettegit bisect
: l'arme ultime pour isoler le commit fautifgit rebase
: faire le ménagegit cherry-pick
: la ceuillette aux commitsgit submodules
: travailler avec plusieurs dépôtsgit commit --amend
: corriger un commit
###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
###Do what you fuck you want!
- CLI (GIT bash for windows)
- TortoiseGit (W$)
- SourceTree (OSX)
- Giggle
- Gitk
- etc.
- Supporté dans les IDEs
- git-svn, git-cvs, git-hg