SlideShare une entreprise Scribd logo
1  sur  30
Git
Utilisation quotidienne
Sylvain Witmeyer
À qui s’adresse cette formation ?
Ceux qui utilisent Git quotidiennement
Ceux qui veulent mieux comprendre comment fonctionne Git
Ceux qui veulent comprendre les commandes de base
Git, ça sert à quoi ?
D’après le site officiel http://git-scm.com/
A VCS (Version Control System) allows you to:
● revert files back to a previous state,
● revert the entire project back to a previous state,
● review changes made over time,
● see who last modified something that might be causing a problem,
● who introduced an issue and when,
● and more…
Qu’est ce qu’on peut versionner
● du code source
● des fichiers de configuration
● des documents textes
● n’importe quel document non binaire
(zip, mp3, avi)
Images issues de http://fr.openclassrooms.com/
Un logiciel de versionning distribué
Centralisé Distribué Dans la vraie vie
Architecture de Git
Working directory / Workspace
contient les fichiers sur lesquels je travaille
Staging area / Index
zone temporaire de préparation avant de
commiter
Repository
contient tous les fichiers, l’historique et la
configuration du projet
Commit
c’est un snapshot - sauvegarde d’un état de
plusieurs fichiers à un moment donné
Git init
Transforme un dossier en
dépôt Git localement
Crée un sous-dossier .git
contenant la
configuration du dépôt
TOUT le projet git sera
contenu dans ce dossier
Git clone
Récupère un dépôt distant
Initialise le dépôt en local
Mémorise l’adresse du
dépôt distant
Git status
Affiche l’état du
workspace et du
staging area
Git add
Ajoute les fichiers que
l’on veut versionner
dans le staging area
Les fichiers ne sont pas
encore sauvegardés
Git commit
Créé un “snapshot”
Ajoute toutes les modifications
dans l’historique
Identifié par un code unique (sha1)
non séquentiel comme SVN
Le message doit indiquer ce que
contient le commit
--amend : modifie le dernier commit
Git branch
Une branche permet de
développer/tester de nouvelles
fonctions sans rien casser
Master est la branche principale.
Elle devrait toujours contenir
un code fonctionnel.
Crée une nouvelle branche “dev”
contenant tout l’historique de
la branche master
> git checkout -b dev
Git checkout
déplace le pointeur HEAD
Permet de se déplacer entre
les différentes branches
Permet aussi de se déplacer
dans l’historique des commits
> git checkout 92b1325
Git log
donne l’historique
des commits
Git tag
Attribue une étiquette à
un commit
Permet de revenir
facilement à une
version précise
Git push
Envoie ses
derniers commits
locaux
-u upstream : lie
les branches
distantes aux
branches locales
Git fetch + Git merge = Git Pull
Récupère les derniers
commits distants
Intègre ces commits
dans le dépôt local
>git pull origin master
Git rebase
Réécrit l’historique
des commits
Supprime les
anciens commits
Merge
Rebase
Git reset
Permet de repositionner HEAD sur
des anciens commits
--soft : index et working tree
inchangé
--mixed : index RAZ et working
tree inchangé (défaut)
--hard : index et working tree RAZ
Git revert
recrée des
commits pour
pour revenir
jusqu’à un commit
particulier
Git diff
Affiche les différences
entre 2 commits, 2
branches, entre le
dernier commit et le
workspace etc ...
Git stash
Stock temporairement les
modifications du staging
area sans créer de
commit
Possibilité d’avoir plusieurs
“stash”
Résumé
Image issue de http://nbviewer.ipyhton.org
Gérer les conflits
Impossible de faire un push si des fichiers
distants ont divergé du dépôt local
On traite toujours les conflits en local et on
commit
git pull > correction des conflits > git push
.gitconfig
Fichier surchargeable définissant les configurations de Git
● Global (~/.gitconfig): Définit les configurations globales pour un utilisateur
● System (/etc/.gitconfig): Peu utilisé. Contient les configurations globales pour tous les
utilisateurs de l’ordinateur
● Local (~/Projects/this-project/.gitconfig): Au niveau du dépôt. Contient les configurations
propres au dépôt. Si ce fichier est commité, il impactera tous les utilisateurs qui
travailleront sur ce dépôt.
!!! Plein d’exemples dans les gists !!!
HEAD - origin - master
HEAD : pointeur sur le dernier commit
Origin : Dépôt distant par défaut
Master : Branche principale par défaut
HEAD^ = HEAD~1 : dernier commit
HEAD~2 : avant dernier commit
.gitignore
Contient les fichiers et les chemins qu’il ne faut pas versionner
logs, caches, config locales, les fichiers temporaires
#eclipse
.buildpath
.project
.settings
.externalToolBuilders
application/config/config.user.ini
composer.phar
caches/*
*~
*.DS_Store
!caches/README
Fork et Pull Request (PR)
Pas de droits en écriture sur des dépôts officiels
Fork = dupliquer un dépôt officiel pour pouvoir écrire dessus
Pull Request = proposer au propriétaire du dépôt officiel une
correction/amélioration depuis notre dépôt fork
Le propriétaire peut “merger” simplement notre patch
Pour découvrir git
https://try.github.io/
http://rogerdudler.github.io/git-guide/index.fr.html
http://pcottle.github.io/learnGitBranching/
pour toutes les commandes : man git-xxx
Questions ?
@switmeyer sylwit sylvainwitmeyer

Contenu connexe

Tendances

Tendances (20)

Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Introduction git
Introduction gitIntroduction git
Introduction git
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Learning git
Learning gitLearning git
Learning git
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
 
Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Git basics to advance with diagrams
Git basics to advance with diagramsGit basics to advance with diagrams
Git basics to advance with diagrams
 
Git basics
Git basicsGit basics
Git basics
 
Git training v10
Git training v10Git training v10
Git training v10
 
git and github
git and githubgit and github
git and github
 
Inside GitHub with Chris Wanstrath
Inside GitHub with Chris WanstrathInside GitHub with Chris Wanstrath
Inside GitHub with Chris Wanstrath
 
Git
GitGit
Git
 
Git
GitGit
Git
 
Github - Git Training Slides: Foundations
Github - Git Training Slides: FoundationsGithub - Git Training Slides: Foundations
Github - Git Training Slides: Foundations
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git
GitGit
Git
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
Git Introduction Tutorial
Git Introduction TutorialGit Introduction Tutorial
Git Introduction Tutorial
 

En vedette

Boutique atteint rythme de croisiere
Boutique atteint rythme de croisiereBoutique atteint rythme de croisiere
Boutique atteint rythme de croisiere
Sylvain Witmeyer
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
goldoraf
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
Geoffrey Bachelet
 
Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)
Geoffrey Bachelet
 
Trabajo En Equipo
Trabajo En EquipoTrabajo En Equipo
Trabajo En Equipo
guest537f2b
 

En vedette (20)

En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?En quoi git serait plus agile que svn ?
En quoi git serait plus agile que svn ?
 
Boutique atteint rythme de croisiere
Boutique atteint rythme de croisiereBoutique atteint rythme de croisiere
Boutique atteint rythme de croisiere
 
Static website generator
Static website generatorStatic website generator
Static website generator
 
Concept of SOA
Concept of SOAConcept of SOA
Concept of SOA
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Présentation Git & GitHub
Présentation Git & GitHubPrésentation Git & GitHub
Présentation Git & GitHub
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Git Flow: un processus de développement Agile
Git Flow: un processus de développement AgileGit Flow: un processus de développement Agile
Git Flow: un processus de développement Agile
 
IoT Toulouse : introduction à mqtt
IoT Toulouse : introduction à mqttIoT Toulouse : introduction à mqtt
IoT Toulouse : introduction à mqtt
 
Git flow in action
Git flow in actionGit flow in action
Git flow in action
 
Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)Introduction à Git (avec PHPStorm)
Introduction à Git (avec PHPStorm)
 
Jeudis du libre_git
Jeudis du libre_gitJeudis du libre_git
Jeudis du libre_git
 
Présentation du retour d'expérience sur Git
Présentation du retour d'expérience sur GitPrésentation du retour d'expérience sur Git
Présentation du retour d'expérience sur Git
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Conférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud JuinConférence #nwxtech4 : GIT par Thibaud Juin
Conférence #nwxtech4 : GIT par Thibaud Juin
 
Git Agile France 2010
Git Agile France 2010Git Agile France 2010
Git Agile France 2010
 
1 Pac
1 Pac1 Pac
1 Pac
 
Trabajo En Equipo
Trabajo En EquipoTrabajo En Equipo
Trabajo En Equipo
 

Similaire à Git utilisation quotidienne

Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
Pape Diop
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
SimpleLearn1
 
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgvenvol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
mia884611
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
akramalidrissi1
 

Similaire à Git utilisation quotidienne (20)

3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
Git and Github.pptx
Git and Github.pptxGit and Github.pptx
Git and Github.pptx
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
git.pdf
git.pdfgit.pdf
git.pdf
 
Get startedwithgit2
Get startedwithgit2Get startedwithgit2
Get startedwithgit2
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
les commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdfles commandes Git que vous devez absolument connaitre!.pdf
les commandes Git que vous devez absolument connaitre!.pdf
 
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgvenvol08-sgv envol08-sgv envol08-sgv envol08-sgv
envol08-sgv envol08-sgv envol08-sgv envol08-sgv
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
 
GIT Fundamentals
GIT FundamentalsGIT Fundamentals
GIT Fundamentals
 
Git pratique
Git pratiqueGit pratique
Git pratique
 
Git pratique
Git pratiqueGit pratique
Git pratique
 
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
GIT & Future Branching-0d86ea39-71ad-4a19-940c-c10be7c33b08-9feea918-d69a-47e...
 
Devops - Git - VSTS
Devops - Git - VSTSDevops - Git - VSTS
Devops - Git - VSTS
 
VSTS Git
VSTS GitVSTS Git
VSTS Git
 

Git utilisation quotidienne

  • 2. À qui s’adresse cette formation ? Ceux qui utilisent Git quotidiennement Ceux qui veulent mieux comprendre comment fonctionne Git Ceux qui veulent comprendre les commandes de base
  • 3. Git, ça sert à quoi ? D’après le site officiel http://git-scm.com/ A VCS (Version Control System) allows you to: ● revert files back to a previous state, ● revert the entire project back to a previous state, ● review changes made over time, ● see who last modified something that might be causing a problem, ● who introduced an issue and when, ● and more…
  • 4. Qu’est ce qu’on peut versionner ● du code source ● des fichiers de configuration ● des documents textes ● n’importe quel document non binaire (zip, mp3, avi)
  • 5. Images issues de http://fr.openclassrooms.com/ Un logiciel de versionning distribué Centralisé Distribué Dans la vraie vie
  • 6. Architecture de Git Working directory / Workspace contient les fichiers sur lesquels je travaille Staging area / Index zone temporaire de préparation avant de commiter Repository contient tous les fichiers, l’historique et la configuration du projet Commit c’est un snapshot - sauvegarde d’un état de plusieurs fichiers à un moment donné
  • 7. Git init Transforme un dossier en dépôt Git localement Crée un sous-dossier .git contenant la configuration du dépôt TOUT le projet git sera contenu dans ce dossier
  • 8. Git clone Récupère un dépôt distant Initialise le dépôt en local Mémorise l’adresse du dépôt distant
  • 9. Git status Affiche l’état du workspace et du staging area
  • 10. Git add Ajoute les fichiers que l’on veut versionner dans le staging area Les fichiers ne sont pas encore sauvegardés
  • 11. Git commit Créé un “snapshot” Ajoute toutes les modifications dans l’historique Identifié par un code unique (sha1) non séquentiel comme SVN Le message doit indiquer ce que contient le commit --amend : modifie le dernier commit
  • 12. Git branch Une branche permet de développer/tester de nouvelles fonctions sans rien casser Master est la branche principale. Elle devrait toujours contenir un code fonctionnel. Crée une nouvelle branche “dev” contenant tout l’historique de la branche master > git checkout -b dev
  • 13. Git checkout déplace le pointeur HEAD Permet de se déplacer entre les différentes branches Permet aussi de se déplacer dans l’historique des commits > git checkout 92b1325
  • 15. Git tag Attribue une étiquette à un commit Permet de revenir facilement à une version précise
  • 16. Git push Envoie ses derniers commits locaux -u upstream : lie les branches distantes aux branches locales
  • 17. Git fetch + Git merge = Git Pull Récupère les derniers commits distants Intègre ces commits dans le dépôt local >git pull origin master
  • 18. Git rebase Réécrit l’historique des commits Supprime les anciens commits Merge Rebase
  • 19. Git reset Permet de repositionner HEAD sur des anciens commits --soft : index et working tree inchangé --mixed : index RAZ et working tree inchangé (défaut) --hard : index et working tree RAZ
  • 20. Git revert recrée des commits pour pour revenir jusqu’à un commit particulier
  • 21. Git diff Affiche les différences entre 2 commits, 2 branches, entre le dernier commit et le workspace etc ...
  • 22. Git stash Stock temporairement les modifications du staging area sans créer de commit Possibilité d’avoir plusieurs “stash”
  • 23. Résumé Image issue de http://nbviewer.ipyhton.org
  • 24. Gérer les conflits Impossible de faire un push si des fichiers distants ont divergé du dépôt local On traite toujours les conflits en local et on commit git pull > correction des conflits > git push
  • 25. .gitconfig Fichier surchargeable définissant les configurations de Git ● Global (~/.gitconfig): Définit les configurations globales pour un utilisateur ● System (/etc/.gitconfig): Peu utilisé. Contient les configurations globales pour tous les utilisateurs de l’ordinateur ● Local (~/Projects/this-project/.gitconfig): Au niveau du dépôt. Contient les configurations propres au dépôt. Si ce fichier est commité, il impactera tous les utilisateurs qui travailleront sur ce dépôt. !!! Plein d’exemples dans les gists !!!
  • 26. HEAD - origin - master HEAD : pointeur sur le dernier commit Origin : Dépôt distant par défaut Master : Branche principale par défaut HEAD^ = HEAD~1 : dernier commit HEAD~2 : avant dernier commit
  • 27. .gitignore Contient les fichiers et les chemins qu’il ne faut pas versionner logs, caches, config locales, les fichiers temporaires #eclipse .buildpath .project .settings .externalToolBuilders application/config/config.user.ini composer.phar caches/* *~ *.DS_Store !caches/README
  • 28. Fork et Pull Request (PR) Pas de droits en écriture sur des dépôts officiels Fork = dupliquer un dépôt officiel pour pouvoir écrire dessus Pull Request = proposer au propriétaire du dépôt officiel une correction/amélioration depuis notre dépôt fork Le propriétaire peut “merger” simplement notre patch
  • 30. Questions ? @switmeyer sylwit sylvainwitmeyer