SlideShare une entreprise Scribd logo
Versioning avec Git
Baptiste LECOCQ

Jean-Baptiste VIGNERON

Promo B3
Président EPNET
http://tiste.io
http://www.epnet.fr
@tiste

Promo I5
Parrain EPSILab
http://www.jbvigneron.fr
http://www.epsilab.net
@jbvigneron
Sommaire
- Le versioning : la théorie
- Problématiques
- Intérêts
- Exemples de solutions existantes

- Présentation de Git
-

Présentation et historique
Les commandes de base
Les différents états d’un fichier
Les branches
Le GitFlow
Les plateformes où vous pouvez utiliser Git
Sommaire
- GitHub
- Présentation du site
- Explication des remotes (push / pull)

- GitHub pour Windows
- Présentation et démo

- Git dans Visual Studio, ça donne ?
- Démo
- Atelier
Le versioning : la théorie
Le versioning
Problématiques:
- Une équipe de développement composée de 3 personnes réalise une
application. Ils souhaitent s’échanger leur fichiers sources. Comment procéder ?
- Un développeur a écrit du code qui fait planter l’application. Pire encore, un
autre développeur a supprimé des fichiers par mégarde. Comment restaurer les
fichiers ?
- 2 développeurs ont modifié le même fichier avec des modifications différentes.
Comment les fusionner ?
Le versioning
Solution: Le VERSIONING !
- Intérêts
◦ Partage du code source entre plusieurs développeurs
◦ Historisation des fichiers
◦ Gestion des conflits
Le versioning
Exemples de solutions existantes:
Présentation de Git
Historique
Création en 2005 par Linus Torvalds
Logiciel de gestion de versions décentralisé
Disponible pour les systèmes UNIX (Mac et Linux) mais également Windows

Site officiel: http://git-scm.com/
Architecture
centralisée
Exemple avec SVN
Utilisé également par Team
Foundation Server

Image extraite de
http://hginit.com/00.html
Architecture
décentralisée
Exemple avec Mercurial
Utilisé également par Git

Image extraite de
http://hginit.com/00.html
git init
Initialise un dossier caché .git afin de versioner le dossier courant

git log
Afficher les informations de tous les commits (un commit représente une version de
l’application)

git status
Afficher l’état de notre git (ce qu’il se passe dans les différentes zones)
git diff
Afficher les différences entre le dernier commit et les dernières modifications

git diff master..develop
Afficher les différences de develop par rapport à master

git diff --cached
Afficher la différenciation entre le dernier commit et les dernières modifications de l’index
git add {. | nom_du_fichier}
Ajouter les fichiers versionnés ou non à la zone de staging (l’index)

git commit –m “{Message du commit}”
« Valide » les fichiers = création d’une nouvelle version
Démo: Application des commandes
Création d’un fichier « README.md », le commiter une fois
Utiliser les commandes de bases
◦ git init
◦ git status
◦ git add
◦ git commit
◦ git log
Les branches
git checkout -b develop
=
git branch develop

+
git checkout develop

Crée une branche develop et s’y déplace
La fusion entre branches
git merge [--no-ff]{branchname}
Fusionne branchname sur la branche courante
GitFlow

Schéma disponible sur
http://nvie.com/posts/a-successfulgit-branching-model/
Remotes
Une remote est un dossier git distant (GitHub, Bitbucket, Assembla, Visual Studio Online, Kiln, custom…)

Multiplicité de celles-ci (défaut : origin)
Du local vers la remote
git push origin master
Pousse les modifications de master vers la remote origin
git clone {url}
Récupère le dossier de travail

git pull [--rebase]

=
git fetch
+

git merge
Récupère les modifications et les fusionne avec notre local
Présentation de GitHub
Moyen visuel de contrôle d’un dossier Git (appelé repository)

Réseau social de coding
Outils de gestion de projet
CV en ligne
Le profil
Les meilleurs repos
Les repo auxquels la personne a participé
Les informations sur la personne

Ses organisations (groupes de travail)
Les activités annuelles
Le repository
Une interface de navigation dans le projet (raccourci : « t »)
Les langages principaux
Les outils de gestion de projet
Diverses statistiques (contributeurs, activités…)
Issues
Peut être assimilé à un problème ou à une amélioration
On peut y assigner un membre, des tags (bug, amélioration…), gérer
ses états (résolu, ouvert…)
Milestone
Peut être assimilé à un jalon
Il possède une date butoire ainsi qu’un ensemble d’issues
Pull-request
Il s’agit d’une demande de fusion entre une branche et une autre

Répond généralement à une issue
Possède une interface de revue de code ainsi qu’une timeline de
commentaires
GitHub for Windows
GitHub for
Windows
Disponible sur
http://windows.github.com/
Compatible avec Windows Vista, 7 et 8
Git dans Visual Studio, ça donne
?
En fonction de votre version…
- Visual Studio 2012:
- Installer l’Update 4 http://www.microsoft.com/fr-fr/download/details.aspx?id=39305
- Installer Visual Studio Tools for Git
http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c

- Visual Studio 2013
Intégré nativement
Atelier !
- Equipes de 2 ou 3 personnes
- Créez chacun votre compte gratuit sur GitHub
- Récupérez le projet sur https://github.com/EPSILab/AtelierGit

- Créez un repository pour votre équipe
- Ouvrez le fichier .sln dans Visual Studio et Démarrez !

Le projet consiste à gérer une liste d’étudiants (nom, prénom, classe et date de naissance).

L’affichage des étudiants dans une liste est fait mais il manque les fonctionnalités d’ajout, de
modification et de suppression de la base de données.
Voyez avec les membres de votre équipe pour vous répartir les tâches.
Créez 3 branches feature/add-student, feature/edit-student et feature/delete-student puis
fusionnez-les. Respectez bien le GitFlow ! Bon courage et gare aux conflits !

Contenu connexe

Tendances

Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
Anurag Upadhaya
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
Arulmurugan Rajaraman
 
Learning git
Learning gitLearning git
Learning git
Sid Anand
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
Yoad Snapir
 
Git
GitGit
Git basic
Git basicGit basic
Git basic
Emran Ul Hadi
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
GoogleDevelopersStud1
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Rueful Robin
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
glen_a_smith
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
Sage Sharp
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
Senthilkumar Gopal
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
Arthur Shvetsov
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
Venkat Malladi
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
Behzad Altaf
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
Mohammad Imam Hossain
 
git and github
git and githubgit and github
git and github
Darren Oakley
 
Git and github
Git and githubGit and github
Git and github
Sayantika Banik
 
Introduction to git & GitHub
Introduction to git & GitHubIntroduction to git & GitHub
Introduction to git & GitHub
Poornachandrakashi
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
Nilay Binjola
 
Introduction git
Introduction gitIntroduction git
Introduction git
Dian Sigit Prastowo
 

Tendances (20)

Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Git for beginners
Git for beginnersGit for beginners
Git for beginners
 
Learning git
Learning gitLearning git
Learning git
 
Basic Git Intro
Basic Git IntroBasic Git Intro
Basic Git Intro
 
Git
GitGit
Git
 
Git basic
Git basicGit basic
Git basic
 
Git and Github Session
Git and Github SessionGit and Github Session
Git and Github Session
 
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overviewGit and GitHub | Concept about Git and GitHub Process | Git Process overview
Git and GitHub | Concept about Git and GitHub Process | Git Process overview
 
Git One Day Training Notes
Git One Day Training NotesGit One Day Training Notes
Git One Day Training Notes
 
Advanced Git Tutorial
Advanced Git TutorialAdvanced Git Tutorial
Advanced Git Tutorial
 
Git and github 101
Git and github 101Git and github 101
Git and github 101
 
Git and GitHub workflows
Git and GitHub workflowsGit and GitHub workflows
Git and GitHub workflows
 
Intro to git and git hub
Intro to git and git hubIntro to git and git hub
Intro to git and git hub
 
Git - An Introduction
Git - An IntroductionGit - An Introduction
Git - An Introduction
 
GIT | Distributed Version Control System
GIT | Distributed Version Control SystemGIT | Distributed Version Control System
GIT | Distributed Version Control System
 
git and github
git and githubgit and github
git and github
 
Git and github
Git and githubGit and github
Git and github
 
Introduction to git & GitHub
Introduction to git & GitHubIntroduction to git & GitHub
Introduction to git & GitHub
 
Git - Basic Crash Course
Git - Basic Crash CourseGit - Basic Crash Course
Git - Basic Crash Course
 
Introduction git
Introduction gitIntroduction git
Introduction git
 

En vedette

Creer et envoyer une newsletter avec Mailchimp
Creer et envoyer une newsletter avec MailchimpCreer et envoyer une newsletter avec Mailchimp
Creer et envoyer une newsletter avec Mailchimp
Laurent Mottet
 
L'agilité organisationnelle
L'agilité organisationnelleL'agilité organisationnelle
L'agilité organisationnelle
Claude Emond
 
Ergonomie des sites internet touristique
Ergonomie des sites internet touristiqueErgonomie des sites internet touristique
Ergonomie des sites internet touristique
UNITEC
 
Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême
Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême
Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême
laurentlamothe
 
Maitrise d'ouvrage role & responsabilité
Maitrise d'ouvrage role & responsabilitéMaitrise d'ouvrage role & responsabilité
Maitrise d'ouvrage role & responsabilité
Florian Poix
 
Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...
Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...
Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...ACTUONDA
 
Atag nouveauté 2012
Atag nouveauté 2012 Atag nouveauté 2012
Atag nouveauté 2012
DEKEYSER sa
 
Les gagnants du prix Antoine-Desilets 2011
Les gagnants du prix Antoine-Desilets 2011Les gagnants du prix Antoine-Desilets 2011
Les gagnants du prix Antoine-Desilets 2011fpjq
 
S2 ecogest-m2-13
S2 ecogest-m2-13S2 ecogest-m2-13
S2 ecogest-m2-13essa1988
 
2013 Guide IDEAS des bonnes pratiques
2013 Guide IDEAS des bonnes pratiques2013 Guide IDEAS des bonnes pratiques
2013 Guide IDEAS des bonnes pratiques
Asso Asah
 
Centrer sa recherche
Centrer sa rechercheCentrer sa recherche
Centrer sa recherche
François Georges
 
Nickel alloys corrosion performance chart
Nickel alloys corrosion performance chartNickel alloys corrosion performance chart
Nickel alloys corrosion performance chart
Heanjia Alloys
 
TRANSITION METALS
TRANSITION METALSTRANSITION METALS
TRANSITION METALSDrix78
 
Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.
Emiland
 
Usage des drones pour les activités de recherche
Usage des drones pour les activités de rechercheUsage des drones pour les activités de recherche
Usage des drones pour les activités de recherche
mapali
 
Retour d'expérience sur l'utilisation des drones civiles pour l'agriculture
Retour d'expérience sur l'utilisation des drones civiles pour l'agricultureRetour d'expérience sur l'utilisation des drones civiles pour l'agriculture
Retour d'expérience sur l'utilisation des drones civiles pour l'agriculture
mapali
 
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é
ECAM Brussels Engineering School
 
Il était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product OwnerIl était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product Owner
Romain Couturier
 

En vedette (20)

Creer et envoyer une newsletter avec Mailchimp
Creer et envoyer une newsletter avec MailchimpCreer et envoyer une newsletter avec Mailchimp
Creer et envoyer une newsletter avec Mailchimp
 
L'agilité organisationnelle
L'agilité organisationnelleL'agilité organisationnelle
L'agilité organisationnelle
 
Ergonomie des sites internet touristique
Ergonomie des sites internet touristiqueErgonomie des sites internet touristique
Ergonomie des sites internet touristique
 
Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême
Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême
Plan d'Action pour l'Accélération de la Réduction de la Pauvreté Extrême
 
Conference 19 Nov
Conference 19 NovConference 19 Nov
Conference 19 Nov
 
Maitrise d'ouvrage role & responsabilité
Maitrise d'ouvrage role & responsabilitéMaitrise d'ouvrage role & responsabilité
Maitrise d'ouvrage role & responsabilité
 
Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...
Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...
Les chiffres clés de la radio 2.0 partie2 de MEDIAMETRIE par Julien Rosanvall...
 
Atag nouveauté 2012
Atag nouveauté 2012 Atag nouveauté 2012
Atag nouveauté 2012
 
Test Tibetain
Test TibetainTest Tibetain
Test Tibetain
 
Les gagnants du prix Antoine-Desilets 2011
Les gagnants du prix Antoine-Desilets 2011Les gagnants du prix Antoine-Desilets 2011
Les gagnants du prix Antoine-Desilets 2011
 
S2 ecogest-m2-13
S2 ecogest-m2-13S2 ecogest-m2-13
S2 ecogest-m2-13
 
2013 Guide IDEAS des bonnes pratiques
2013 Guide IDEAS des bonnes pratiques2013 Guide IDEAS des bonnes pratiques
2013 Guide IDEAS des bonnes pratiques
 
Centrer sa recherche
Centrer sa rechercheCentrer sa recherche
Centrer sa recherche
 
Nickel alloys corrosion performance chart
Nickel alloys corrosion performance chartNickel alloys corrosion performance chart
Nickel alloys corrosion performance chart
 
TRANSITION METALS
TRANSITION METALSTRANSITION METALS
TRANSITION METALS
 
Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.Dear NSA, let me take care of your slides.
Dear NSA, let me take care of your slides.
 
Usage des drones pour les activités de recherche
Usage des drones pour les activités de rechercheUsage des drones pour les activités de recherche
Usage des drones pour les activités de recherche
 
Retour d'expérience sur l'utilisation des drones civiles pour l'agriculture
Retour d'expérience sur l'utilisation des drones civiles pour l'agricultureRetour d'expérience sur l'utilisation des drones civiles pour l'agriculture
Retour d'expérience sur l'utilisation des drones civiles pour l'agriculture
 
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é
 
Il était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product OwnerIl était une fois la vie d'un Product Owner
Il était une fois la vie d'un Product Owner
 

Similaire à Versioning avec Git

Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
Nassim Bahri
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
badrfathallah2
 
3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
NourFrioui
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
Sylvain Witmeyer
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
mouad55
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
Francois ANDRE
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
Nicolas wallerand
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
Thierry Gayet
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
Monoem Youneb
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 gitPape Diop
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
msadouni
 
Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
ECAM Brussels Engineering School
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
pprem
 
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
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
Stéphane HULARD
 
Gestion de projet avec GitHub
Gestion de projet avec GitHubGestion de projet avec GitHub
Gestion de projet avec GitHub
Nicolas Bats
 
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
 
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
GreenIvory
 

Similaire à Versioning avec Git (20)

Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
Introduction à git.pdf
Introduction à git.pdfIntroduction à git.pdf
Introduction à git.pdf
 
3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipeline
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
Get startedwithgit2
Get startedwithgit2Get startedwithgit2
Get startedwithgit2
 
SVN to GitHUb
SVN to GitHUbSVN to GitHUb
SVN to GitHUb
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
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...
 
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 WordCamp Lyon 2015 - WordPress, Git et l'intégration continue WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
WordCamp Lyon 2015 - WordPress, Git et l'intégration continue
 
Gestion de projet avec GitHub
Gestion de projet avec GitHubGestion de projet avec GitHub
Gestion de projet avec GitHub
 
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
 
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
20091006 Dev Forum Fr 001Introduction à GWT en utilisant AppCase SDK
 

Plus de Jean-Baptiste Vigneron

Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
Jean-Baptiste Vigneron
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
Jean-Baptiste Vigneron
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
Jean-Baptiste Vigneron
 
Agile Tour 2016 @ Lille
Agile Tour 2016 @ LilleAgile Tour 2016 @ Lille
Agile Tour 2016 @ Lille
Jean-Baptiste Vigneron
 
Compte-rendu Agile Tour 2014 à Lille
Compte-rendu Agile Tour 2014 à LilleCompte-rendu Agile Tour 2014 à Lille
Compte-rendu Agile Tour 2014 à Lille
Jean-Baptiste Vigneron
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
Jean-Baptiste Vigneron
 
Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7
Jean-Baptiste Vigneron
 
Pattern MVVM avec MVVM Light Toolkit
Pattern MVVM avec MVVM Light ToolkitPattern MVVM avec MVVM Light Toolkit
Pattern MVVM avec MVVM Light Toolkit
Jean-Baptiste Vigneron
 
Langage C#
Langage C#Langage C#
.NET Framework
.NET Framework.NET Framework
.NET Framework
Jean-Baptiste Vigneron
 

Plus de Jean-Baptiste Vigneron (10)

Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6Une introduction à Javascript et ECMAScript 6
Une introduction à Javascript et ECMAScript 6
 
Université du soir - TDD
Université du soir - TDDUniversité du soir - TDD
Université du soir - TDD
 
Agile Tour 2016 @ Lille
Agile Tour 2016 @ LilleAgile Tour 2016 @ Lille
Agile Tour 2016 @ Lille
 
Compte-rendu Agile Tour 2014 à Lille
Compte-rendu Agile Tour 2014 à LilleCompte-rendu Agile Tour 2014 à Lille
Compte-rendu Agile Tour 2014 à Lille
 
Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0Initiation à ASP.NET 4.0
Initiation à ASP.NET 4.0
 
Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7Atelier initiation Windows Phone 7
Atelier initiation Windows Phone 7
 
Pattern MVVM avec MVVM Light Toolkit
Pattern MVVM avec MVVM Light ToolkitPattern MVVM avec MVVM Light Toolkit
Pattern MVVM avec MVVM Light Toolkit
 
Langage C#
Langage C#Langage C#
Langage C#
 
.NET Framework
.NET Framework.NET Framework
.NET Framework
 

Versioning avec Git

  • 1. Versioning avec Git Baptiste LECOCQ Jean-Baptiste VIGNERON Promo B3 Président EPNET http://tiste.io http://www.epnet.fr @tiste Promo I5 Parrain EPSILab http://www.jbvigneron.fr http://www.epsilab.net @jbvigneron
  • 2. Sommaire - Le versioning : la théorie - Problématiques - Intérêts - Exemples de solutions existantes - Présentation de Git - Présentation et historique Les commandes de base Les différents états d’un fichier Les branches Le GitFlow Les plateformes où vous pouvez utiliser Git
  • 3. Sommaire - GitHub - Présentation du site - Explication des remotes (push / pull) - GitHub pour Windows - Présentation et démo - Git dans Visual Studio, ça donne ? - Démo - Atelier
  • 4. Le versioning : la théorie
  • 5. Le versioning Problématiques: - Une équipe de développement composée de 3 personnes réalise une application. Ils souhaitent s’échanger leur fichiers sources. Comment procéder ? - Un développeur a écrit du code qui fait planter l’application. Pire encore, un autre développeur a supprimé des fichiers par mégarde. Comment restaurer les fichiers ? - 2 développeurs ont modifié le même fichier avec des modifications différentes. Comment les fusionner ?
  • 6. Le versioning Solution: Le VERSIONING ! - Intérêts ◦ Partage du code source entre plusieurs développeurs ◦ Historisation des fichiers ◦ Gestion des conflits
  • 7.
  • 8. Le versioning Exemples de solutions existantes:
  • 10. Historique Création en 2005 par Linus Torvalds Logiciel de gestion de versions décentralisé Disponible pour les systèmes UNIX (Mac et Linux) mais également Windows Site officiel: http://git-scm.com/
  • 11. Architecture centralisée Exemple avec SVN Utilisé également par Team Foundation Server Image extraite de http://hginit.com/00.html
  • 12. Architecture décentralisée Exemple avec Mercurial Utilisé également par Git Image extraite de http://hginit.com/00.html
  • 13.
  • 14. git init Initialise un dossier caché .git afin de versioner le dossier courant git log Afficher les informations de tous les commits (un commit représente une version de l’application) git status Afficher l’état de notre git (ce qu’il se passe dans les différentes zones)
  • 15. git diff Afficher les différences entre le dernier commit et les dernières modifications git diff master..develop Afficher les différences de develop par rapport à master git diff --cached Afficher la différenciation entre le dernier commit et les dernières modifications de l’index
  • 16. git add {. | nom_du_fichier} Ajouter les fichiers versionnés ou non à la zone de staging (l’index) git commit –m “{Message du commit}” « Valide » les fichiers = création d’une nouvelle version
  • 17. Démo: Application des commandes Création d’un fichier « README.md », le commiter une fois Utiliser les commandes de bases ◦ git init ◦ git status ◦ git add ◦ git commit ◦ git log
  • 18. Les branches git checkout -b develop = git branch develop + git checkout develop Crée une branche develop et s’y déplace
  • 19. La fusion entre branches git merge [--no-ff]{branchname} Fusionne branchname sur la branche courante
  • 21. Remotes Une remote est un dossier git distant (GitHub, Bitbucket, Assembla, Visual Studio Online, Kiln, custom…) Multiplicité de celles-ci (défaut : origin)
  • 22. Du local vers la remote git push origin master Pousse les modifications de master vers la remote origin
  • 23. git clone {url} Récupère le dossier de travail git pull [--rebase] = git fetch + git merge Récupère les modifications et les fusionne avec notre local
  • 24.
  • 25. Présentation de GitHub Moyen visuel de contrôle d’un dossier Git (appelé repository) Réseau social de coding Outils de gestion de projet CV en ligne
  • 26. Le profil Les meilleurs repos Les repo auxquels la personne a participé Les informations sur la personne Ses organisations (groupes de travail) Les activités annuelles
  • 27.
  • 28. Le repository Une interface de navigation dans le projet (raccourci : « t ») Les langages principaux Les outils de gestion de projet Diverses statistiques (contributeurs, activités…)
  • 29.
  • 30. Issues Peut être assimilé à un problème ou à une amélioration On peut y assigner un membre, des tags (bug, amélioration…), gérer ses états (résolu, ouvert…)
  • 31. Milestone Peut être assimilé à un jalon Il possède une date butoire ainsi qu’un ensemble d’issues
  • 32. Pull-request Il s’agit d’une demande de fusion entre une branche et une autre Répond généralement à une issue Possède une interface de revue de code ainsi qu’une timeline de commentaires
  • 35. Git dans Visual Studio, ça donne ?
  • 36. En fonction de votre version… - Visual Studio 2012: - Installer l’Update 4 http://www.microsoft.com/fr-fr/download/details.aspx?id=39305 - Installer Visual Studio Tools for Git http://visualstudiogallery.msdn.microsoft.com/abafc7d6-dcaa-40f4-8a5e-d6724bdb980c - Visual Studio 2013 Intégré nativement
  • 37. Atelier ! - Equipes de 2 ou 3 personnes - Créez chacun votre compte gratuit sur GitHub - Récupérez le projet sur https://github.com/EPSILab/AtelierGit - Créez un repository pour votre équipe - Ouvrez le fichier .sln dans Visual Studio et Démarrez ! Le projet consiste à gérer une liste d’étudiants (nom, prénom, classe et date de naissance). L’affichage des étudiants dans une liste est fait mais il manque les fonctionnalités d’ajout, de modification et de suppression de la base de données. Voyez avec les membres de votre équipe pour vous répartir les tâches. Créez 3 branches feature/add-student, feature/edit-student et feature/delete-student puis fusionnez-les. Respectez bien le GitFlow ! Bon courage et gare aux conflits !