Upload
trinhkhanh
View
225
Download
0
Embed Size (px)
Citation preview
TP Gestion de versions avec Git
Matthieu Herrb
httphomepageslaasfrmatthieuenvol2010tp-gittp-gitpdf
Envol 2010
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Introduction
Systeme de gestion de version distribue
par opposition a CVS ou subversion qui sont centralises
Developpe par Linus Torvalds pour le noyau Linux
Similaire a Monotone Darcs Mercurial Bazaar etc
Interfaces de git
Ligne de commande
Diverses GUI pour git (gitk qgit giggles etc)
Plugin Eclipse EGit
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Concepts de base
repository tout lrsquohistorique du projetcontenu dans le repertoire git
diff ou patch differences entre 2 versions drsquoun fichier
commit (verbe) action drsquoenregistrer les version drsquoun ensemblede fichiersdans le repository
commit (nom) le resultat drsquoune action de commit representepar un hash SHA-1
branche une lignee de developpementpar defaut tout le developpement se fait dans labranche master
tag un identificateur symbolique pour un commit ou unebranche
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Introduction
Systeme de gestion de version distribue
par opposition a CVS ou subversion qui sont centralises
Developpe par Linus Torvalds pour le noyau Linux
Similaire a Monotone Darcs Mercurial Bazaar etc
Interfaces de git
Ligne de commande
Diverses GUI pour git (gitk qgit giggles etc)
Plugin Eclipse EGit
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Concepts de base
repository tout lrsquohistorique du projetcontenu dans le repertoire git
diff ou patch differences entre 2 versions drsquoun fichier
commit (verbe) action drsquoenregistrer les version drsquoun ensemblede fichiersdans le repository
commit (nom) le resultat drsquoune action de commit representepar un hash SHA-1
branche une lignee de developpementpar defaut tout le developpement se fait dans labranche master
tag un identificateur symbolique pour un commit ou unebranche
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Introduction
Systeme de gestion de version distribue
par opposition a CVS ou subversion qui sont centralises
Developpe par Linus Torvalds pour le noyau Linux
Similaire a Monotone Darcs Mercurial Bazaar etc
Interfaces de git
Ligne de commande
Diverses GUI pour git (gitk qgit giggles etc)
Plugin Eclipse EGit
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Concepts de base
repository tout lrsquohistorique du projetcontenu dans le repertoire git
diff ou patch differences entre 2 versions drsquoun fichier
commit (verbe) action drsquoenregistrer les version drsquoun ensemblede fichiersdans le repository
commit (nom) le resultat drsquoune action de commit representepar un hash SHA-1
branche une lignee de developpementpar defaut tout le developpement se fait dans labranche master
tag un identificateur symbolique pour un commit ou unebranche
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Introduction
Systeme de gestion de version distribue
par opposition a CVS ou subversion qui sont centralises
Developpe par Linus Torvalds pour le noyau Linux
Similaire a Monotone Darcs Mercurial Bazaar etc
Interfaces de git
Ligne de commande
Diverses GUI pour git (gitk qgit giggles etc)
Plugin Eclipse EGit
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Concepts de base
repository tout lrsquohistorique du projetcontenu dans le repertoire git
diff ou patch differences entre 2 versions drsquoun fichier
commit (verbe) action drsquoenregistrer les version drsquoun ensemblede fichiersdans le repository
commit (nom) le resultat drsquoune action de commit representepar un hash SHA-1
branche une lignee de developpementpar defaut tout le developpement se fait dans labranche master
tag un identificateur symbolique pour un commit ou unebranche
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Interfaces de git
Ligne de commande
Diverses GUI pour git (gitk qgit giggles etc)
Plugin Eclipse EGit
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Concepts de base
repository tout lrsquohistorique du projetcontenu dans le repertoire git
diff ou patch differences entre 2 versions drsquoun fichier
commit (verbe) action drsquoenregistrer les version drsquoun ensemblede fichiersdans le repository
commit (nom) le resultat drsquoune action de commit representepar un hash SHA-1
branche une lignee de developpementpar defaut tout le developpement se fait dans labranche master
tag un identificateur symbolique pour un commit ou unebranche
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Concepts de base
repository tout lrsquohistorique du projetcontenu dans le repertoire git
diff ou patch differences entre 2 versions drsquoun fichier
commit (verbe) action drsquoenregistrer les version drsquoun ensemblede fichiersdans le repository
commit (nom) le resultat drsquoune action de commit representepar un hash SHA-1
branche une lignee de developpementpar defaut tout le developpement se fait dans labranche master
tag un identificateur symbolique pour un commit ou unebranche
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Concepts de base
repository tout lrsquohistorique du projetcontenu dans le repertoire git
diff ou patch differences entre 2 versions drsquoun fichier
commit (verbe) action drsquoenregistrer les version drsquoun ensemblede fichiersdans le repository
commit (nom) le resultat drsquoune action de commit representepar un hash SHA-1
branche une lignee de developpementpar defaut tout le developpement se fait dans labranche master
tag un identificateur symbolique pour un commit ou unebranche
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Concepts de base (2)
Working tree Lrsquoarborscence de fichiers en cours drsquoedition
Index un objet traquant les fichiers modifies ajoutes ousupprimes
Blob donnees binaires utilisees pour stocker les fichierscommits et autres donnees
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Configuration initiale
Definir les valeurs par defaut pour les commits
Nom drsquoutilisateur amp adresse mail
Editeur de textes prefere
git config --global --add username Matthieu Herrb
git config --global --add useremail
ltmatthieuherrblaasfrgt
git config --global --add coreeditor emacs -nw
cat ~gitconfig
[user]
name = Matthieu Herrb
email = ltmatthieuherrblaasfrgt
[core]
editor = emacs -nw
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Creer un repository
git init cree un repository vide dans le repertoire courant
mkdir git-tutorial
cd git-tutorial
git init
Initialized empty Git repository in homemhgit-tuturialgit
ls -l git
total 24
-rw-r--r-- 1 mh mh 23 Oct 26 0914 HEAD
-rw-r--r-- 1 mh mh 111 Oct 26 0914 config
-rw-r--r-- 1 mh mh 58 Oct 26 0914 description
drwxr-xr-x 12 mh mh 408 Oct 26 0914 hooks
drwxr-xr-x 3 mh mh 102 Oct 26 0914 info
drwxr-xr-x 4 mh mh 136 Oct 26 0914 objects
drwxr-xr-x 4 mh mh 136 Oct 26 0914 refs
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Ajout de fichiers
git add ajoute des fichiers nouveaux ou recemment modifies alrsquoindex
echo Hello World gt filetxt
git add
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Consulter lrsquoetat
Affichier la branche courante et lrsquoetat de lrsquoindex
git status
On branch master
Initial commit
Changes to be committed
(use git rm --cached ltfilegt to unstage)
new file filetxt
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Committer les modifications
git commit
Created initial commit 0ba7bd8 Initial version
1 files changed 1 insertions(+) 0 deletions(-)
create mode 100644 filetxt
echo Hello Matthieu gt filetxt
git commit -a
Created commit 7fbf4cb Modif
1 files changed 1 insertions(+) 1 deletions(-)
Ouvre lrsquoediteur de textes pour entrer un message de commitpuis enregistre les modifications dans le repository
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Regarder en arriere
Plusieurs facons drsquoexaminer lrsquohistorique des modifications
git log
commit 7fbf4cb7c8977061fbfb609016f5414e833a3a1c
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122933 2008 +0100
Modif
commit 0ba7bd8b93ef9ddd8917814bde8cbdaaf9732559
Author Matthieu Herrb ltmatthieuherrblaasfrgt
Date Tue Oct 28 122838 2008 +0100
Initial version
git log --stat
git log -p
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Examiner les modifications
Affiche les modifications entre le working set et lrsquoindexou entre lrsquoindex et le repository
echo Good bye gt filetxt
git diff
diff --git afiletxt bfiletxt
index 6bd8f3cc0ee9ab 100644
--- afiletxt
+++ bfiletxt
-1 +1
-Hello Matthieu
+Good bye
git add filetxt
git diff --cached
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Marquer une version
Creer un objet de type tag contenant un nom et un commentaireOuvre lrsquoediteur de texte pour saisir le commentaire
git tag -a git-tuto-10
git tag -l
git-tuto-10
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Corriger les erreurs revenir a une version saine
Restaurer le working set a partir de la derniere version commiteedetruisant toutes les modifications locales
git reset --hard
Inverser un commit donne
git revert 03bace
Finished one revert
Created commit c333ab5 Revert 3rd version
1 files changed 1 insertions(+) 1 deletions(-)
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Changer de branche
Creer une nouvelle branche
git checkout -b newbranch
Retourner a la branche master
git checkout master
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Lister les branches existantes
git branch
master
newbranch
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Fusionner les modifications drsquoune autre branche
git merge branch
Fusionne les commits de la branche branch et commite leresultat
2 types de fusion
fast forward pas de conflits seulement des nouveaux commitsa ajouter a la version courante
fusion normale presence de modifications locales utilise unalgorithme de fusion a 3 voies
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Gestion des conflits
Un conflit se produit lorsque les modifications a fusionner sontincompatibles avec les modifications locales de la branche cible
Les fichiers avec des conflits contiennent des marqueurs deconflit
Ils ne sont pas automatiquement ajoutes a lrsquoindex
Resoudre le conflict
Ajouter les fichiers a lrsquoindex
Committer le resultat
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Outils pour aider a la fusion
Git peut utiliser des outils tiers pour aider a resoudre les conflitskdiff3 tkdiff meld xxdiff opendiff
git config --global mergetool meld
git mergetool
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Selectionner des modifications individuelles
Prendre un commit dans une autre branche (une correction de bug)et lrsquoappliquer a la branche courante
git cherry-pick SHA1_HASH
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Rebase - rejouer les commits drsquoune branche
Les fusions creent des commits fantomes sous forme de liensdans le graphe des versionsLorsqursquoune branche nrsquoa que quelques commits locaux rebase estpreferable
git rebase master
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Copier un repository
git clone repo
repo un URL du repository a copier Peut etre
un chemin vers un repertoire sur la meme machine
ssh[user]hostpath - utilise GIT dans SSH
githostpath - acces anonyme avec le protocole GIT
httphostpath - acces anonyme avec le protocole HTTP
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
exercice
repository dinnersshenvol2010traclaasfrgitenvol2010dinner
clonez le repository
creez votre branche personnelle
modifiez le code
utilisez les fichiers de compilation du TP automakearrangez le stylecorrigez des defauts dans le code
commitez vos modifs au fur et a mesure
synchronizez avec le repository central
visualisez les modifs faites par drsquoautres
fusionnez les modifs de plusieurs personnes pour faire unemeilleure version
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Mise a jour depuis un repository
git pull
recupere les branches distantes dans le repository local
fusionne la branch distante par defaut dans la branchecouranteet commite le resultat
peut produire un conflit
Resoudre le conflitCommitter le resultat
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Branches distantes
git branch -r
liste les branches distantes (originbranch)
Une branche distante peut etre suivie (fusionnee dans les 2 sens)avec
git checkout -t -b newbranch origingnewbranch
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Utilisation de rebase avec les branches distantes
fecth recupere les commits distants sans les fusionner
git fetch
git rebase originmaster
Raccourci
git fetch
git rebase originmaster
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Envoyer des commits vers un repository
git push
Transfere les commits locaux vers les branches distantes suiviesGenere une erreur si pas a jour (pull ou rebase drsquoabord)
Il faut transferer les tags separement
git push --tags
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Identifier les auteurs
git blame -- filetxt
Pour chaque ligne drsquoun fichier montre le dernier commit et sonauteur
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Recherche par dissection drsquoun bug
git bissect permet de rechercher dans lrsquohistorique des commitslrsquoorigine drsquoun bug
git bisect start
git bisect bad la version courante est buguee
git bisect good v2633-rc2 derniere bonne version
Git determine le commit median et lrsquoextraitTester et executer selon le resultat
git bisect good
git bisect bad
A la fin reste le commit responsable du bug
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Creer une distribution avec git
(Alternative a la fonction drsquoautomake make dist)
Committer toutes les modifications y compris le nouveau nomde la version
Tagger le resultat
Utiliser archive pour produire une archive qui sera ladistribution source
git tag -a foo-13
git archive --prefix=foo-13 foo-13
| gzip -c - gt foo-13targz
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Outils graphiques
gitk
git gui
qgit
giggle
Web browsers cgit gitweb
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Integration avec eclipse
Installation
ajouter httpdownloadeclipseorgegitupdatescomme site de telechargement(Preferences rarr InstallUpdates)
installer EGit et JGit (Help rarr Install new software)
Eclipse peut alors gerer lrsquohistorique du projet avec git
Documentationhttpwwweclipseorgegitdocumentation
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log
Agenda
1 Introduction
2 Concepts de Git
3 Developpeur isole
4 Utilisation des branches
5 Travailler a plusieurs
6 Autres fonctionnalites
7 Appendix
Git pour utilisateurs de CVS
CVS git
checkout cloneupdate pullcommit commit -a + pushadd addremove rmdiff difflog log