Download - Petit Déjeuner Git chez Makina Corpus
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La gestion de version avec
Git([ it]ʒ [git])
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoireLes avantages
Scénario d'utilisation
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
SubVersioN : CVS done right
«There is no way to do CVS right. »
- Linus Torvalds
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoireLes avantages
Scénario d'utilisation
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La Petite Histoire
2002● Linus choisit BitKeeper pour le noyau Linux
● « Merge » facilité
● Non-linéaire
● Décentralisé
2005● 17000 fichiers, 6 millions de lignes● 400 développeurs● 3 patches/heure, 3200 lignes/jour● Une version = 5000 patchs
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La Petite Histoire
2005● 5 Avril : BitKeeper devient payant● 6 Avril : Linus annonce son prototype « Git »● 7 Avril : Une instance est hébergée chez lui● 18 Avril : Merge multiple de branches● 16 Juin : Sortie du noyau 2.6.12 géré sur Git
2011● Septembre : 1 million d'utilisateurs sur GitHub
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
« I'm an egotistical bastard, and I name all my projects after myself. First Linux, now git. »
- Linus Torvalds
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoireLes avantages
Scénario d'utilisation
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 1 - décentralisé
● Local● N'importe où !
● Mode déconnecté
● Serveur facultatif
● Distant● Branche par branche
● Publication● Déploiement
● ex : heroku.com
/home
Dev
@server
Public
SVN
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 2 – léger
● Un clone parfait● = complet
● Rapide !● Réseau seulement pour synchroniser
● Ultra-performant !● Ne stocke que les « diff »
● Ex : Mozilla 12Go 420Mo→
● Branches et Tags● = fichiers métadonnées
● Transport : SSH, FTP, HTTP, WebDAV, Email...
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 3 – branché
$ svn merge -r11:10 http://svn/svn/my_repos/test$ svn: REPORT request failed on '/svn/my_repos/!svn/bc/11/test'
$ svn: MERGE request failed on '/svn/repository/trunk'$ svn: MERGE of '/svn/repository/trunk': 200 OK (http://svn.myserver.com)
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 3 – branché
● Vue graphique● Locales et/ou distantes● Algorithmes de fusion (« merge »)● Déplacement (« rebase »)● Avec suivi (« track »)
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Les Avantages : 3 – branché
● Manipulation facilitée● C'est le core committer celui qui développe, qui gère les conflits !
● « pull request »
● Nouveaux paradigmes (« Git Flow »)● 1 version = 1 branche
● 1 feature = 1 branche
● Brouillon ? branche !→
● Temporaire ? branche !→
● Interrompu ? branche !→
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
La petite histoireLes avantages
Scénario d'utilisation
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
● Initialisation
$ cd demo$ git init .Initialized empty Git repository
● Premières contributions dans master
$ git add README$ git commit -m "Premier"
(edition de README)$ git commit -a -m "Deuxième"
gitg est ton ami
Local!
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
● Ajout d'un dépôt distant
$ git remote add origin git://you@server/demo.git/
● Synchronisation : envoi
$ git push origin master
● Synchronisation : réception
$ git pull origin master
● commit != push
DistantLocal
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
● Travail en local
● Collaboration
$ git fetch origin
● Fusion !
$ git merge origin/master
git pull = Fetch+Merge
Désynchro
LocalDistant
Commit ajouté
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
● Nouvelle branche
$ git branch refactor$ git checkout refactor......$ git commit -m "Changement"
● Fusionner avec master
$ git merge master
● Repositionner refactor
$ git rebase master
Départ
ou
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Scénario d'utilisation
● Tagger une version
$ git tag 1.0
● Se rendre à un commit antérieur
$ git checkout 1.0
$ git checkout 0ec2ab
● Annuler les derniers commits
$ git reset HEAD~1
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
Et maintenant ?
$ sudo aptitude install git
● Dispo sur GNU/Linux, OS X, BSD, Solaris, AIX, BeOS... et Windows● Eclipse Indigo 3.7 : Egit● TurtoiseGit● git-svn : mirroir Git d'un dépôt Subversion● git mergetool : Utilise meld par ex. pour résoudre les conflits
● Server Git = Server SSH + git init --bare /path/repo● http://github.com● http://gitorious.org
Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.Makina Corpus – Présentation de Git – Toulouse, 18 Octobre 2011.
ReconVersion
SubVersion Git
trunk master
svn checkout git clone (+git checkout)
svn commit git commit -a + git push
svn update git pull
svn add git add
svn merge -r 20:HEAD http://example.com/svn/branches/branch
git merge branch
svn copy http://example.com/svn/trunk http://example.com/svn/tags/name
git tag name
svn copy http://example.com/svn/trunk http://example.com/svn/branches/branchsvn switch http://example.com/svn/branches/branch
git branch branchgit checkout branch