SlideShare une entreprise Scribd logo
1  sur  26
Télécharger pour lire hors ligne
GitPourLaNulle
À propos 
Je comprenais mal Git, m’emmêlais dans les notions de branches, de fork et de commit. 
J’ai demandé des explications à Julien. 
J’ai mis ça en images et avec mes mots. 
Je vous le partage (CC by SA), des fois que ça vous serve aussi. 
Voilà. 
Delphine 
http://nissone.com/ - @nissone 
2
Sommaire 
● Commit / Repo / parent et enfant - 4 
● Branche / Master - 8 
● Créer une branche - 11 
● Tag - 15 
● Merge / Faire un commit / Pull Request - 17 
● Fork - 20 
Récap - 24 
● Légende - 25 
● Merci / Voir aussi / Droits de reproduction / Crédit - 26 
3
Commit / Repo / parent et enfant 
4
Un commit est un 
ensemble d'un ou 
plusieurs fichiers ayant 
subi des modifications. 
5
Quand on publie des 
modifications de fichier(s), 
on le fait depuis un commit 
parent vers un commit 
enfant. 
Le parent est donc la version 
précédente des fichiers. 
7
NB : La modification du 
premier commit est la 
création de fichier. 
Elle se fait dans un 
répertoire que l'on appelle le 
repository, le "repo", ou 
Repo “dépôt” en français. 
6
Branche / Master 
8
Une étiquette désigne le 
dernier commit (la dernière 
version des fichiers, donc). 
Cette étiquette va donc 
"bouger" : elle passe du 
dernier commit précédent 
au nouveau dernier commit. 
Cette étiquette est appelée 
"branche". 
Par convention, la première 
branche est le "Master". 
MASTER 
MASTER 
MASTER 
MASTER 
9
NB : Par extension, on a 
tendance à parler de 
branche pour désigner à la 
fois le dernier commit mais 
aussi l'ensemble des 
commits précédents. 
Le dernier 
commit 
Les commits 
précédents 
MASTER 
10
Créer une branche 
11
Lorsque l'on veut travailler 
sur une version des fichiers 
sans impacter (au moins 
dans un premier temps) le 
master, on pose une 
nouvelle étiquette. On crée 
alors une branche. 
Nouvelle 
étiquette 
12
On dépose alors notre 
commit (la version de 
fichier(s) précédentes plus 
des modifications) sur cette 
nouvelle branche (sur cette 
nouvelle étiquette). 
Là aussi, la branche désigne 
le dernier commit. 
On donne à cette branche le 
nom que l'on souhaite 
("dev", "v2", etc.) 
Nouvelle 
étiquette 
13
NB : On désigne par "head" 
le dernier commit quelle que 
soit la branche où l’on est en 
train de travailler. 
HEAD 
Nouvelle 
étiquette 
14
Tag 
15
On peut également attribuer 
une étiquette non-mobile à 
un commit. C’est un tag. 
Un tag est attaché à un 
commit (une version des 
fichiers) et ne “bouge” pas. 
MASTER 
“stable02” 
16
Merge / Pull Request 
PR 
17
Si on est satisfait de notre 
hypothèse (notre nouvelle 
branche issue du master), on 
reverse les modifications 
dans le master : on merge. 
NB : Ce peut faire passer ce 
merge par une étape de 
validation qu'on appelle Pull 
Request (PR). 
MASTER 
18
Il n'y a pas que depuis le 
master qu'on peut créer des 
branches. On peut créer des 
branches à partir de toutes 
les branches. 
On peut donc également 
merger dans n’importe 
quelle branche ; pas 
uniquement le master. 
“DEV” 
“Recette” 
19
Fork 
20
Quand on souhaite travailler à plusieurs sur un même projet (c'est-à-dire sur un ensemble 
de branches), chacun crée un clone du projet dans son propre espace de travail. 
C'est un fork du projet (du repository). 
Repo de 
référence 
Fork 1 : 
Nouveau 
repo 
Fork 2 : 
Nouveau 
repo 
21
22 
Dans chacun des 
repository, le projet 
évolue (commits, 
branches, pull 
requests). On peut faire 
une PR (Pull Request) 
depuis un repository 
forké vers le repository 
de référence. 
Repo de référence Repo 2
Récap 
23
24 
Repo de référence 
temps 
Fork
commit 
commit 
(branche master) 
commit 
(nouvelle branche) 
Premier commit 
initialisation d’une 
nouvelle branche 
merge 
commit enfant 
commits parents 
branche 
master 
branche 
tag 
modification(s) 
Pull Request (PR) 
Légende 
25
Remerciements 
Merci à Julien Wajsberg (https://twitter.com/jwajsberg) pour toutes ses explications. 
Références 
Voir aussi : http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/ 
Droits de réutilisation 
« GitPourLaNulle » de Delphine M. est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage 
dans les Mêmes Conditions 4.0 International. 
Les autorisations au-delà du champ de cette licence peuvent être obtenues à http://nissone.com/contact.php. 
Crédits 
Icônes utlisées : 
● Dossier, fichier : http://colebemis.com/feather/ 
● Étoile, étiquette, verrou : http://designmodo.com/linecons-free/ 
● Loupe : http://www.icons-land.com/vista-base-software-icons.php 
26

Contenu connexe

Tendances

Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Gitmsadouni
 
Git et les systèmes de gestion de versions
Git et les systèmes de gestion de versionsGit et les systèmes de gestion de versions
Git et les systèmes de gestion de versionsAlice Loeser
 
Atelier Git + GitHub
Atelier Git + GitHubAtelier Git + GitHub
Atelier Git + GitHubspamaert
 
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 versiongoldoraf
 
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 gitGeoffrey Bachelet
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienneSylvain Witmeyer
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - PrésentationDavid RIEHL
 
Petit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina CorpusPetit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina Corpusleplatrem
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 gitPape Diop
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipseFrancois ANDRE
 
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 GitIppon
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & githubMonoem Youneb
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuAhmed Archive
 
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 JuinNormandie Web Xperts
 

Tendances (20)

Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Git et les systèmes de gestion de versions
Git et les systèmes de gestion de versionsGit et les systèmes de gestion de versions
Git et les systèmes de gestion de versions
 
Git
GitGit
Git
 
Atelier Git + GitHub
Atelier Git + GitHubAtelier Git + GitHub
Atelier 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
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Git développez autrement
Git développez autrementGit développez autrement
Git développez autrement
 
GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
Petit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina CorpusPetit Déjeuner Git chez Makina Corpus
Petit Déjeuner Git chez Makina Corpus
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
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
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntuDéveloppement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
Développement avec Intégration continue:Git, Jenkins, Tomcat, CentOS, ubuntu
 
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
GitGit
Git
 

Similaire à GitPourLaNulle

Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfmouad55
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning gitNassim Bahri
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdfbadrfathallah2
 
Retour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueMoïse Fiscal
 
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
 
Subversion - Utilisation et bonnes pratiques
Subversion - Utilisation et bonnes pratiquesSubversion - Utilisation et bonnes pratiques
Subversion - Utilisation et bonnes pratiquesJérôme Vieilledent
 
SlideShare LAG #2 - DevOps Center- 27-10-2022.pptx
SlideShare LAG #2 - DevOps Center- 27-10-2022.pptxSlideShare LAG #2 - DevOps Center- 27-10-2022.pptx
SlideShare LAG #2 - DevOps Center- 27-10-2022.pptxArnaudSourdillon1
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxThomasParaiso1
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedAnne Nicolas
 
J'ai installé Team Foundation Server. Et après?
J'ai installé Team Foundation Server. Et après?J'ai installé Team Foundation Server. Et après?
J'ai installé Team Foundation Server. Et après?Microsoft Technet France
 
Organiser son CI/CD - présentation
Organiser son CI/CD - présentation Organiser son CI/CD - présentation
Organiser son CI/CD - présentation Julien Garderon
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Créer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenCréer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenAmico Fabien
 

Similaire à GitPourLaNulle (20)

GIT Fundamentals
GIT FundamentalsGIT Fundamentals
GIT Fundamentals
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
Git merge-rebase
Git merge-rebaseGit merge-rebase
Git merge-rebase
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
Get startedwithgit2
Get startedwithgit2Get startedwithgit2
Get startedwithgit2
 
Retour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continueRetour d'experience GIT, Integration continue
Retour d'experience GIT, Integration continue
 
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...
 
Git and Github.pptx
Git and Github.pptxGit and Github.pptx
Git and Github.pptx
 
Subversion - Utilisation et bonnes pratiques
Subversion - Utilisation et bonnes pratiquesSubversion - Utilisation et bonnes pratiques
Subversion - Utilisation et bonnes pratiques
 
SlideShare LAG #2 - DevOps Center- 27-10-2022.pptx
SlideShare LAG #2 - DevOps Center- 27-10-2022.pptxSlideShare LAG #2 - DevOps Center- 27-10-2022.pptx
SlideShare LAG #2 - DevOps Center- 27-10-2022.pptx
 
Yocto oe
Yocto oeYocto oe
Yocto oe
 
CodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptxCodeBuilder_DevOpsCenter.pptx
CodeBuilder_DevOpsCenter.pptx
 
Distro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbeddedDistro Recipes 2013 : Yocto / OpenEmbedded
Distro Recipes 2013 : Yocto / OpenEmbedded
 
J'ai installé Team Foundation Server. Et après?
J'ai installé Team Foundation Server. Et après?J'ai installé Team Foundation Server. Et après?
J'ai installé Team Foundation Server. Et après?
 
Organiser son CI/CD - présentation
Organiser son CI/CD - présentation Organiser son CI/CD - présentation
Organiser son CI/CD - présentation
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
Créer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et MavenCréer un Micro PaaS avec Docker et Maven
Créer un Micro PaaS avec Docker et Maven
 
Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015Compte rendu Blend Web Mix 2015
Compte rendu Blend Web Mix 2015
 

Plus de Delphine Malassingne

Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...
Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...
Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...Delphine Malassingne
 
Qualité Web - Cours _WebSchoolFactory - juin 2014
Qualité Web - Cours _WebSchoolFactory - juin 2014Qualité Web - Cours _WebSchoolFactory - juin 2014
Qualité Web - Cours _WebSchoolFactory - juin 2014Delphine Malassingne
 
Accessibilité numérique, mais au fait de quoi on parle ?
Accessibilité numérique, mais au fait de quoi on parle ?Accessibilité numérique, mais au fait de quoi on parle ?
Accessibilité numérique, mais au fait de quoi on parle ?Delphine Malassingne
 
Table-ronde Qualité web - Codeurs en Seine 2013
Table-ronde Qualité web - Codeurs en Seine 2013Table-ronde Qualité web - Codeurs en Seine 2013
Table-ronde Qualité web - Codeurs en Seine 2013Delphine Malassingne
 
Être bien pour produire bien - Paris Web 2013
Être bien pour produire bien - Paris Web 2013Être bien pour produire bien - Paris Web 2013
Être bien pour produire bien - Paris Web 2013Delphine Malassingne
 
Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012
Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012
Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012Delphine Malassingne
 
Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012
 Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012 Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012
Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012Delphine Malassingne
 
Atelier Référentiel des bonnes pratiques de performance web
Atelier Référentiel des bonnes pratiques de performance webAtelier Référentiel des bonnes pratiques de performance web
Atelier Référentiel des bonnes pratiques de performance webDelphine Malassingne
 
Argumenter en faveur du poste de responsable qualité web | Paris Web 2011
Argumenter en faveur du poste de responsable qualité web | Paris Web 2011Argumenter en faveur du poste de responsable qualité web | Paris Web 2011
Argumenter en faveur du poste de responsable qualité web | Paris Web 2011Delphine Malassingne
 
Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011
Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011
Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011Delphine Malassingne
 
Intégrer l accessibilité dans une démarche qualité | W3Café
Intégrer l accessibilité dans une démarche qualité | W3CaféIntégrer l accessibilité dans une démarche qualité | W3Café
Intégrer l accessibilité dans une démarche qualité | W3CaféDelphine Malassingne
 
Mettre en place la gestion de la qualité web (octobre 2010)
Mettre en place la gestion de la qualité web (octobre 2010)Mettre en place la gestion de la qualité web (octobre 2010)
Mettre en place la gestion de la qualité web (octobre 2010)Delphine Malassingne
 

Plus de Delphine Malassingne (13)

Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...
Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...
Construire ensemble un enseignement du front-end pertinent, pédagogique et pé...
 
Qualité Web - Cours _WebSchoolFactory - juin 2014
Qualité Web - Cours _WebSchoolFactory - juin 2014Qualité Web - Cours _WebSchoolFactory - juin 2014
Qualité Web - Cours _WebSchoolFactory - juin 2014
 
Accessibilité numérique, mais au fait de quoi on parle ?
Accessibilité numérique, mais au fait de quoi on parle ?Accessibilité numérique, mais au fait de quoi on parle ?
Accessibilité numérique, mais au fait de quoi on parle ?
 
Table-ronde Qualité web - Codeurs en Seine 2013
Table-ronde Qualité web - Codeurs en Seine 2013Table-ronde Qualité web - Codeurs en Seine 2013
Table-ronde Qualité web - Codeurs en Seine 2013
 
Être bien pour produire bien - Paris Web 2013
Être bien pour produire bien - Paris Web 2013Être bien pour produire bien - Paris Web 2013
Être bien pour produire bien - Paris Web 2013
 
Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012
Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012
Qualité web - Partir dans la bonne direction | _WebSchoolFactory | décembre 2012
 
Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012
 Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012 Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012
Envie d un reférentiel ? Créons-le ! Là, maintenant | Paris Web 2012
 
Atelier Référentiel des bonnes pratiques de performance web
Atelier Référentiel des bonnes pratiques de performance webAtelier Référentiel des bonnes pratiques de performance web
Atelier Référentiel des bonnes pratiques de performance web
 
Argumenter en faveur du poste de responsable qualité web | Paris Web 2011
Argumenter en faveur du poste de responsable qualité web | Paris Web 2011Argumenter en faveur du poste de responsable qualité web | Paris Web 2011
Argumenter en faveur du poste de responsable qualité web | Paris Web 2011
 
Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011
Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011
Pourquoi / comment le poste de Responsable qualité web | Sud Web 2011
 
Prise de parole - Paris-Web 2011
Prise de parole - Paris-Web 2011Prise de parole - Paris-Web 2011
Prise de parole - Paris-Web 2011
 
Intégrer l accessibilité dans une démarche qualité | W3Café
Intégrer l accessibilité dans une démarche qualité | W3CaféIntégrer l accessibilité dans une démarche qualité | W3Café
Intégrer l accessibilité dans une démarche qualité | W3Café
 
Mettre en place la gestion de la qualité web (octobre 2010)
Mettre en place la gestion de la qualité web (octobre 2010)Mettre en place la gestion de la qualité web (octobre 2010)
Mettre en place la gestion de la qualité web (octobre 2010)
 

GitPourLaNulle

  • 2. À propos Je comprenais mal Git, m’emmêlais dans les notions de branches, de fork et de commit. J’ai demandé des explications à Julien. J’ai mis ça en images et avec mes mots. Je vous le partage (CC by SA), des fois que ça vous serve aussi. Voilà. Delphine http://nissone.com/ - @nissone 2
  • 3. Sommaire ● Commit / Repo / parent et enfant - 4 ● Branche / Master - 8 ● Créer une branche - 11 ● Tag - 15 ● Merge / Faire un commit / Pull Request - 17 ● Fork - 20 Récap - 24 ● Légende - 25 ● Merci / Voir aussi / Droits de reproduction / Crédit - 26 3
  • 4. Commit / Repo / parent et enfant 4
  • 5. Un commit est un ensemble d'un ou plusieurs fichiers ayant subi des modifications. 5
  • 6. Quand on publie des modifications de fichier(s), on le fait depuis un commit parent vers un commit enfant. Le parent est donc la version précédente des fichiers. 7
  • 7. NB : La modification du premier commit est la création de fichier. Elle se fait dans un répertoire que l'on appelle le repository, le "repo", ou Repo “dépôt” en français. 6
  • 9. Une étiquette désigne le dernier commit (la dernière version des fichiers, donc). Cette étiquette va donc "bouger" : elle passe du dernier commit précédent au nouveau dernier commit. Cette étiquette est appelée "branche". Par convention, la première branche est le "Master". MASTER MASTER MASTER MASTER 9
  • 10. NB : Par extension, on a tendance à parler de branche pour désigner à la fois le dernier commit mais aussi l'ensemble des commits précédents. Le dernier commit Les commits précédents MASTER 10
  • 12. Lorsque l'on veut travailler sur une version des fichiers sans impacter (au moins dans un premier temps) le master, on pose une nouvelle étiquette. On crée alors une branche. Nouvelle étiquette 12
  • 13. On dépose alors notre commit (la version de fichier(s) précédentes plus des modifications) sur cette nouvelle branche (sur cette nouvelle étiquette). Là aussi, la branche désigne le dernier commit. On donne à cette branche le nom que l'on souhaite ("dev", "v2", etc.) Nouvelle étiquette 13
  • 14. NB : On désigne par "head" le dernier commit quelle que soit la branche où l’on est en train de travailler. HEAD Nouvelle étiquette 14
  • 16. On peut également attribuer une étiquette non-mobile à un commit. C’est un tag. Un tag est attaché à un commit (une version des fichiers) et ne “bouge” pas. MASTER “stable02” 16
  • 17. Merge / Pull Request PR 17
  • 18. Si on est satisfait de notre hypothèse (notre nouvelle branche issue du master), on reverse les modifications dans le master : on merge. NB : Ce peut faire passer ce merge par une étape de validation qu'on appelle Pull Request (PR). MASTER 18
  • 19. Il n'y a pas que depuis le master qu'on peut créer des branches. On peut créer des branches à partir de toutes les branches. On peut donc également merger dans n’importe quelle branche ; pas uniquement le master. “DEV” “Recette” 19
  • 21. Quand on souhaite travailler à plusieurs sur un même projet (c'est-à-dire sur un ensemble de branches), chacun crée un clone du projet dans son propre espace de travail. C'est un fork du projet (du repository). Repo de référence Fork 1 : Nouveau repo Fork 2 : Nouveau repo 21
  • 22. 22 Dans chacun des repository, le projet évolue (commits, branches, pull requests). On peut faire une PR (Pull Request) depuis un repository forké vers le repository de référence. Repo de référence Repo 2
  • 24. 24 Repo de référence temps Fork
  • 25. commit commit (branche master) commit (nouvelle branche) Premier commit initialisation d’une nouvelle branche merge commit enfant commits parents branche master branche tag modification(s) Pull Request (PR) Légende 25
  • 26. Remerciements Merci à Julien Wajsberg (https://twitter.com/jwajsberg) pour toutes ses explications. Références Voir aussi : http://yannesposito.com/Scratch/fr/blog/2009-11-12-Git-for-n00b/ Droits de réutilisation « GitPourLaNulle » de Delphine M. est mis à disposition selon les termes de la licence Creative Commons Attribution - Partage dans les Mêmes Conditions 4.0 International. Les autorisations au-delà du champ de cette licence peuvent être obtenues à http://nissone.com/contact.php. Crédits Icônes utlisées : ● Dossier, fichier : http://colebemis.com/feather/ ● Étoile, étiquette, verrou : http://designmodo.com/linecons-free/ ● Loupe : http://www.icons-land.com/vista-base-software-icons.php 26