SlideShare ist ein Scribd-Unternehmen logo
1 von 28
Le protocole Git et GitHub
Groupe G2A - Alexis Dahan, Alexandre Gay, Hugo Michard
Louis Arbaretier, Thibaut Vlacich, Léo Plouvier 1
27/10/2015
27/10/2015
Sommaire de la présentation
I. Introduction aux systèmes de gestion de versions
II. Pourquoi utiliser un système de gestion de versions ?
III. Le cas particulier de Git
IV. GitHub et son interface graphique
V. L’intégration du protocole Git à l’IDE
VI. Conclusion
2
27/10/2015
I. Introduction aux systèmes de gestion de versions
 La gestion de versions (en anglais “Version Control”) permet de gérer
multiples versions d’un document, d’un site Web, d’un programme
etc.
 L’utilisation d’un tel système est essentielle dans un projet en équipe,
mais peut aussi être utile dans un projet individuel
 Les systèmes de gestion de versions les plus connus sont CVS,
Mercurial, Subversion ou encore Git
 CVS et Subversion utilisent un serveur « central ». Les utilisateurs doivent
fréquemment mettre à jour leur version de travail locale depuis ce
serveur « central » et y envoyer leurs modifications
 Mercurial et Git traitent, eux, tous les dépôts comme égaux
 Les systèmes Mercurial et Git sont plus récents et s’imposent de plus
en plus face à CVS et Subversion
3
27/10/2015
Un exemple simple de gestion de versions
 L’exemple de Google Docs
4
Historique des
modifications
La modification
effectuée
27/10/2015
II. Pourquoi utiliser un système de gestion de versions ?
 Lorsque l’on travaille seul :
 Offre une « machine à voyager dans le temps », permettant de revenir à
d’anciennes versions du projet
 Offre la possibilité de travailler simultanément sur différentes versions
d’un même projet (exemple : version en production et version de
développement)
 Lorsque l’on travaille en équipe :
 Simplifie grandement le travail simultané, et la fusion des modifications
5
27/10/2015
III. Le cas particulier de Git
6
Le plan de cette partie :
1. Qu’est-ce que Git ?
2. Pourquoi utiliser Git face à d’autres solutions ?
3. Le fonctionnement de Git
4. Comment installer Git ?
5. Utiliser Git en lignes de commande
27/10/2015
III. Le cas particulier de Git
7
1. Qu’est-ce Git ?
Git est un logiciel de gestion de versions décentralisé. Il est open source, et a été
créé aux alentours de 2005 par Linus Torvalds, développeur du noyau Linux, tout
d’abord pour son usage personnel car il n’aimait pas les solutions déjà existantes
comme CVS ou SVN.
“When I say I hate CVS with a passion, I have to also say that if there are any SVN
[Subversion] users in the audience, you might want to leave. Because my hatred of
CVS has meant that I see Subversion as being the most pointless project ever started.
The slogan of Subversion for a while was "CVS done right", or something like that, and
if you start with that kind of slogan, there's nowhere you can go. There is no way to
do CVS right.”
Linus Torvalds
27/10/2015
III. Le cas particulier de Git
8
2. Pourquoi utiliser Git face à d’autres solutions ?
 Git a de nombreux avantages face à de plus anciens systèmes comme CVS et
Subversion (SVN)
 Git est extrêmement simple d’utilisation, notamment couplé à une interface
graphique comme GitHub
 Git est rapide
 Travailler hors-ligne : Git ne requiert pas de serveur distant pour fonctionner
 Et bien entendu, Git est gratuit et open source
27/10/2015
III. Le cas particulier de Git
9
3. Le fonctionnement de Git
 Faire un commit
 Lorsque vous avez fait des modifications dans votre code, il faut les publier (faire
un « commit »)
 Un commit doit obligatoirement être accompagné d’une courte description (de
préférence en anglais, et en quelques mots)
 Exemple d’un bon commit : « Adds robots.txt »
 Exemple d’un mauvais commit : « Modification de la ligne 75 du fichier System/Main.php »
git commit -am "Commit description"
27/10/2015
III. Le cas particulier de Git
10
3. Le fonctionnement de Git
 Le principe des branches
master
Ma fonctionnalité
Création d’une nouvelle branche Fusion de la nouvelle branche
dans la branche principale
git checkout -b my_new_branch
 La création d’une nouvelle branche est particulièrement utile lorsque
plusieurs versions d’une même application cohabitent, ou lorsque l’on veut
développer une nouvelle fonctionnalité nécessitant des changements majeurs
dans le code
27/10/2015
III. Le cas particulier de Git
11
3. Le fonctionnement de Git
 Résoudre un conflit
 Parfois, il peut arriver que l’une de vos modifications entre en conflit avec les
modifications de quelqu’un d’autre, et que Git ne soit pas capable de fusionner
automatiquement vos modifications
 Dans ce cas, il sera demandé de corriger manuellement le conflit en allant éditer
le(s) fichier(s) concerné(s)
27/10/2015
III. Le cas particulier de Git
12
3. Le fonctionnement de Git
 Exemple d’un conflit
Hello world!
I’m using Git.
Hi everyone!
I’m using Git.
Hello everyone!
I’m using Git.
Developer A
Developer B
La fusion est ici impossible
Il y a un conflit !
Bonjour le monde !
J‘utilise Git.
Version de base
master
branch B
Version fusionnée manuellement
27/10/2015
III. Le cas particulier de Git
13
3. Le fonctionnement de Git
 Les dépôts distants (remote)
 La seule particularité d’un dépôt distant est d’être situé dans le « cloud » (ou dans
un Intranet), et donc d’être accessible par tous 24h/24, 7j/7
 Le dépôt distant permet à tous les collaborateurs de partager leurs modifications
du code
Dépôt distant
Développeur A Développeur B
git pullgit push
27/10/2015
III. Le cas particulier de Git
14
4. Comment installer Git ?
 Pour installer Git, il suffit simplement de télécharger l’installateur sur le site
officiel de Git : https://git-scm.com/downloads
27/10/2015
III. Le cas particulier de Git
15
5. Utiliser Git en lignes de commande
 Après avoir installé Git, il suffit de lancer le logiciel « Git Bash » pour pouvoir
utiliser Git en mode lignes de commande
27/10/2015
III. Le cas particulier de Git
16
5. Utiliser Git en lignes de commande
 Cependant, l’utilisation de Git en lignes de commande peut-être relativement
compliquée et non-intuitive et nous n’entrerons donc pas dans les détails
 Nous préférerons donc l’utilisation d’une interface graphique comme celle
développée par GitHub
 Si vous voulez cependant en savoir plus sur l’utilisation de Git en lignes de
commande, GitHub met à disposition un court aide-mémoire regroupant les
principales commandes utilisables avec Git :
 https://training.github.com/kit/downloads/fr/github-git-cheat-sheet.pdf
27/10/2015
IV. GitHub et son interface graphique
17
Le plan de cette partie :
1. Qu’est-ce que GitHub ?
2. Comment installer GitHub Desktop ?
3. Comment créer un dépôt GitHub et le cloner sur son ordinateur ?
4. L’interface de GitHub Desktop
5. Obtenir gratuitement un compte « Micro » grâce au programme « GitHub
Education »
27/10/2015
IV. GitHub et son interface graphique
1. Qu’est-ce que GitHub ?
 GitHub est avant tout une communauté
 Elle regroupe plus de 11 millions d’utilisateurs
 Plus de 28 millions de projets ont été créé sur GitHub
 Elle permet de faciliter la collaboration de développeurs du monde entier sur un
même projet
 Mais GitHub est aussi une société d’hébergement, qui propose des solutions
de gestion de développement de logiciels, basées sur le protocole Git
 L’utilisation de GitHub est entièrement gratuite, dans le cadre d’un
développement open source (et donc public)
 GitHub a également développé un logiciel appelé « GitHub Desktop », qui
permet de gérer son projet sous Git très facilement, via une interface
graphique
18
27/10/2015
IV. GitHub et son interface graphique
1. Qu’est-ce que GitHub ?
 GitHub est utilisé par de nombreuses sociétés du monde des nouvelles
technologies pour leurs projets open source
 Entre autres…
19
27/10/2015
IV. GitHub et son interface graphique
2. Comment installer GitHub Desktop ?
 GitHub Desktop est disponible sur Windows et Mac
 GitHub Desktop est gratuit et téléchargeable sur https://desktop.github.com
 GitHub Desktop permet de faire simplement et graphiquement toutes les
opérations liées à Git
20
27/10/2015
IV. GitHub et son interface graphique
3. Comment créer un dépôt GitHub et le cloner sur son ordinateur ?
 Tout d’abord il faut créer un compte gratuitement sur https://github.com
 Une fois le compte créé, il suffit de cliquer sur le petit pour créer un
nouveau dépôt
21
27/10/2015
IV. GitHub et son interface graphique
3. Comment créer un dépôt GitHub et le cloner sur son ordinateur ?
 Une fois le dépôt créé, il est possible de le cloner localement sur votre
machine en un clic, via GitHub Desktop, en cliquant sur
 Il est recommandé de cloner le dépôt dans le dossier htdocs de XAMPP
22
27/10/2015
IV. GitHub et son interface graphique
4. L’interface de GitHub Desktop
 Les captures d’écrans ont été réalisées sur la version Windows de GitHub
Desktop. L’interface sur Mac est très similaire, mais comporte quelques
légères différences.
23Historique des modifications
Détail des modifications
Synchroniser le dépôt local
avec le dépôt remote
Créer une nouvelle branche
Changer de branche
27/10/2015
IV. GitHub et son interface graphique
4. L’interface de GitHub Desktop
 Les captures d’écrans ont été réalisées sur la version Windows de GitHub
Desktop. L’interface sur Mac est très similaire, mais comporte quelques
légères différences.
24
Liste des fichiers modifiés
Détail des modifications
Description du commit
27/10/2015
IV. GitHub et son interface graphique
5. Obtenir un compte « Micro » grâce au programme « GitHub Education »
 GitHub offre la possibilité aux étudiants d’obtenir gratuitement un compte
« Micro » (normalement à 7$ par mois), permettant d’avoir jusqu’à 5 dépôts
privés durant la durée des études.
 Pour cela, il suffit de se rendre sur https://education.github.com/ et de
demander son « Student Developer Pack » !
 Il n’est pas nécessaire que tous les membres du groupe fassent une demande.
Seul le propriétaire du dépôt a besoin d’un compte « Micro »
25
27/10/2015
V. L’intégration de Git à l’IDE
26
 L’exemple d’Atom, l’IDE développé par GitHub.
Atom est gratuit et téléchargeable sur www.atom.io
27/10/2015
VI. Conclusion
En conclusion, Git est un outil performant et simple d’utilisation, qui facilitera
grandement le travail en équipe au sein de votre groupe durant le
développement de votre site web.
Les principales difficultés liées à l’utilisation de Git viennent de la résolution des
éventuels conflits entre vos modifications et celles des autres.
Pour éviter au maximum les conflits :
 Eviter que plusieurs personnes travaillent sur une même partie du code en même
temps
 Avant de commencer à travailler, s’assurer de récupérer la dernière version du
code
 Publier ses modifications (faire un « commit ») le plus souvent possible
 Eviter de « commit » de trop grosses modifications
27
27/10/2015
Merci pour votre attention !
Sources :
 https://en.wikipedia.org/wiki/Version_control
 https://en.wikipedia.org/wiki/Git_(software)
 https://git-scm.com/doc
 https://help.github.com/
 https://training.github.com/
 http://www-inf.it-sudparis.eu/SIMBAD/courses/2015/?page_id=6
28

Weitere ähnliche Inhalte

Was ist angesagt?

Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiDonia Hammami
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git labAbdelghani Azri
 
Mini projet android 2014 2015 iset nabeul sem3
Mini projet android 2014 2015 iset nabeul sem3Mini projet android 2014 2015 iset nabeul sem3
Mini projet android 2014 2015 iset nabeul sem3Saber LAJILI
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring CloudFlorian Beaufumé
 
Initiation à Android
Initiation à AndroidInitiation à Android
Initiation à AndroidLilia Sfaxi
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...MOHAMMED MOURADI
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTtayebbousfiha1
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Anas Riahi
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec dockergcatt
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Nawres Farhat
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieMohammed Amine Mostefai
 

Was ist angesagt? (20)

Rapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammamiRapport pfe talan_2018_donia_hammami
Rapport pfe talan_2018_donia_hammami
 
Formation autour de git et git lab
Formation autour de git et git labFormation autour de git et git lab
Formation autour de git et git lab
 
Mini projet android 2014 2015 iset nabeul sem3
Mini projet android 2014 2015 iset nabeul sem3Mini projet android 2014 2015 iset nabeul sem3
Mini projet android 2014 2015 iset nabeul sem3
 
Introduction à Angular
Introduction à AngularIntroduction à Angular
Introduction à Angular
 
Microservices avec Spring Cloud
Microservices avec Spring CloudMicroservices avec Spring Cloud
Microservices avec Spring Cloud
 
Tutoriel GIT
Tutoriel GITTutoriel GIT
Tutoriel GIT
 
Initiation à Android
Initiation à AndroidInitiation à Android
Initiation à Android
 
DEVOPS
DEVOPSDEVOPS
DEVOPS
 
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
Rapport application web (Spring BOOT,angular4) et mobile(ionc3) gestion des a...
 
Angular Avancé
Angular AvancéAngular Avancé
Angular Avancé
 
Angular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHTAngular Framework présentation PPT LIGHT
Angular Framework présentation PPT LIGHT
 
Support cours angular
Support cours angularSupport cours angular
Support cours angular
 
Jenkins
JenkinsJenkins
Jenkins
 
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
Rapport PFE : Réalisation d'une application web back-office de gestion pédago...
 
Architecture microservices avec docker
Architecture microservices avec dockerArchitecture microservices avec docker
Architecture microservices avec docker
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
Rapport pfe- Refonte et déploiement d’une solution de messagerie en utilisant...
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Cours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vieCours Génie Logiciel - Cours 2 - Cycles de vie
Cours Génie Logiciel - Cours 2 - Cycles de vie
 
Présentation PFE
Présentation PFEPrésentation PFE
Présentation PFE
 

Andere mochten auch

GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - PrésentationDavid RIEHL
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Gitmsadouni
 
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 AgileXavier Hausherr
 
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 ?Guillaume Collic
 
LPIC1 03 01 édition de fichiers texte
LPIC1 03 01 édition de fichiers texteLPIC1 03 01 édition de fichiers texte
LPIC1 03 01 édition de fichiers texteNoël
 
C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)Ulrich VACHON
 
Comparison of SVN and Git
Comparison of SVN and GitComparison of SVN and Git
Comparison of SVN and GitDaniel Wieth
 
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?Nicolas Ruffel
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHubNishan Bose
 
Introduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaIntroduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaJoris De Winne
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to GitLukas Fittl
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Javaagorolabs
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDavid Caramelo
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners HubSpot
 

Andere mochten auch (20)

GitHub - Présentation
GitHub - PrésentationGitHub - Présentation
GitHub - Présentation
 
Présentation du versioning avec Git
Présentation du versioning avec GitPrésentation du versioning avec Git
Présentation du versioning avec Git
 
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
 
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 ?
 
LPIC1 03 01 édition de fichiers texte
LPIC1 03 01 édition de fichiers texteLPIC1 03 01 édition de fichiers texte
LPIC1 03 01 édition de fichiers texte
 
Git training
Git trainingGit training
Git training
 
C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)C'est si simple git ! (devoxx france 2012)
C'est si simple git ! (devoxx france 2012)
 
Comparison of SVN and Git
Comparison of SVN and GitComparison of SVN and Git
Comparison of SVN and Git
 
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
Mix it 2016 - Software craftsmanship : le chainon manquant de l’agilité ?
 
Ippevent Ogury 2016
Ippevent Ogury 2016Ippevent Ogury 2016
Ippevent Ogury 2016
 
Introduction to GitHub
Introduction to GitHubIntroduction to GitHub
Introduction to GitHub
 
Introduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for JavaIntroduction Professional Scrum Developer for Java
Introduction Professional Scrum Developer for Java
 
SVN 2 Git
SVN 2 GitSVN 2 Git
SVN 2 Git
 
Tests Logiciel
Tests LogicielTests Logiciel
Tests Logiciel
 
GIT / SVN
GIT / SVNGIT / SVN
GIT / SVN
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Java 201 Intro to Test Driven Development in Java
Java 201   Intro to Test Driven Development in JavaJava 201   Intro to Test Driven Development in Java
Java 201 Intro to Test Driven Development in Java
 
Github basics
Github basicsGithub basics
Github basics
 
Devoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous deliveryDevoxx 2016 - L'odyssée du continuous delivery
Devoxx 2016 - L'odyssée du continuous delivery
 
Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners Git 101: Git and GitHub for Beginners
Git 101: Git and GitHub for Beginners
 

Ähnlich wie Présentation Git & GitHub

Gestion de projet avec GitHub
Gestion de projet avec GitHubGestion de projet avec GitHub
Gestion de projet avec GitHubNicolas Bats
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning gitNassim Bahri
 
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!.pdfSimpleLearn1
 
Git & Rstudio vincent guyader
Git & Rstudio vincent guyaderGit & Rstudio vincent guyader
Git & Rstudio vincent guyaderVincent Guyader
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projectsThierry Gayet
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfmouad55
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratifPhilippe Guglielmetti
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratifPhilippe Guglielmetti
 
Chaine de production pipeline
Chaine de production   pipelineChaine de production   pipeline
Chaine de production pipelineNicolas wallerand
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & githubMonoem Youneb
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipseFrancois ANDRE
 
Azure pipelines vs GitHub actions
Azure pipelines vs GitHub actionsAzure pipelines vs GitHub actions
Azure pipelines vs GitHub actionsAdrien Clerbois
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVNneuros
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à GitPierre Templier
 
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
 

Ähnlich wie Présentation Git & GitHub (20)

Gestion de projet avec GitHub
Gestion de projet avec GitHubGestion de projet avec GitHub
Gestion de projet avec GitHub
 
Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning 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
 
Git & Rstudio vincent guyader
Git & Rstudio vincent guyaderGit & Rstudio vincent guyader
Git & Rstudio vincent guyader
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratif
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratif
 
Get startedwithgit2
Get startedwithgit2Get startedwithgit2
Get startedwithgit2
 
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
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 
Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
Azure pipelines vs GitHub actions
Azure pipelines vs GitHub actionsAzure pipelines vs GitHub actions
Azure pipelines vs GitHub actions
 
3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
 
git.pdf
git.pdfgit.pdf
git.pdf
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
REX - Passage de CVS à Git
REX - Passage de CVS à GitREX - Passage de CVS à Git
REX - Passage de CVS à Git
 
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...
 

Présentation Git & GitHub

  • 1. Le protocole Git et GitHub Groupe G2A - Alexis Dahan, Alexandre Gay, Hugo Michard Louis Arbaretier, Thibaut Vlacich, Léo Plouvier 1 27/10/2015
  • 2. 27/10/2015 Sommaire de la présentation I. Introduction aux systèmes de gestion de versions II. Pourquoi utiliser un système de gestion de versions ? III. Le cas particulier de Git IV. GitHub et son interface graphique V. L’intégration du protocole Git à l’IDE VI. Conclusion 2
  • 3. 27/10/2015 I. Introduction aux systèmes de gestion de versions  La gestion de versions (en anglais “Version Control”) permet de gérer multiples versions d’un document, d’un site Web, d’un programme etc.  L’utilisation d’un tel système est essentielle dans un projet en équipe, mais peut aussi être utile dans un projet individuel  Les systèmes de gestion de versions les plus connus sont CVS, Mercurial, Subversion ou encore Git  CVS et Subversion utilisent un serveur « central ». Les utilisateurs doivent fréquemment mettre à jour leur version de travail locale depuis ce serveur « central » et y envoyer leurs modifications  Mercurial et Git traitent, eux, tous les dépôts comme égaux  Les systèmes Mercurial et Git sont plus récents et s’imposent de plus en plus face à CVS et Subversion 3
  • 4. 27/10/2015 Un exemple simple de gestion de versions  L’exemple de Google Docs 4 Historique des modifications La modification effectuée
  • 5. 27/10/2015 II. Pourquoi utiliser un système de gestion de versions ?  Lorsque l’on travaille seul :  Offre une « machine à voyager dans le temps », permettant de revenir à d’anciennes versions du projet  Offre la possibilité de travailler simultanément sur différentes versions d’un même projet (exemple : version en production et version de développement)  Lorsque l’on travaille en équipe :  Simplifie grandement le travail simultané, et la fusion des modifications 5
  • 6. 27/10/2015 III. Le cas particulier de Git 6 Le plan de cette partie : 1. Qu’est-ce que Git ? 2. Pourquoi utiliser Git face à d’autres solutions ? 3. Le fonctionnement de Git 4. Comment installer Git ? 5. Utiliser Git en lignes de commande
  • 7. 27/10/2015 III. Le cas particulier de Git 7 1. Qu’est-ce Git ? Git est un logiciel de gestion de versions décentralisé. Il est open source, et a été créé aux alentours de 2005 par Linus Torvalds, développeur du noyau Linux, tout d’abord pour son usage personnel car il n’aimait pas les solutions déjà existantes comme CVS ou SVN. “When I say I hate CVS with a passion, I have to also say that if there are any SVN [Subversion] users in the audience, you might want to leave. Because my hatred of CVS has meant that I see Subversion as being the most pointless project ever started. The slogan of Subversion for a while was "CVS done right", or something like that, and if you start with that kind of slogan, there's nowhere you can go. There is no way to do CVS right.” Linus Torvalds
  • 8. 27/10/2015 III. Le cas particulier de Git 8 2. Pourquoi utiliser Git face à d’autres solutions ?  Git a de nombreux avantages face à de plus anciens systèmes comme CVS et Subversion (SVN)  Git est extrêmement simple d’utilisation, notamment couplé à une interface graphique comme GitHub  Git est rapide  Travailler hors-ligne : Git ne requiert pas de serveur distant pour fonctionner  Et bien entendu, Git est gratuit et open source
  • 9. 27/10/2015 III. Le cas particulier de Git 9 3. Le fonctionnement de Git  Faire un commit  Lorsque vous avez fait des modifications dans votre code, il faut les publier (faire un « commit »)  Un commit doit obligatoirement être accompagné d’une courte description (de préférence en anglais, et en quelques mots)  Exemple d’un bon commit : « Adds robots.txt »  Exemple d’un mauvais commit : « Modification de la ligne 75 du fichier System/Main.php » git commit -am "Commit description"
  • 10. 27/10/2015 III. Le cas particulier de Git 10 3. Le fonctionnement de Git  Le principe des branches master Ma fonctionnalité Création d’une nouvelle branche Fusion de la nouvelle branche dans la branche principale git checkout -b my_new_branch  La création d’une nouvelle branche est particulièrement utile lorsque plusieurs versions d’une même application cohabitent, ou lorsque l’on veut développer une nouvelle fonctionnalité nécessitant des changements majeurs dans le code
  • 11. 27/10/2015 III. Le cas particulier de Git 11 3. Le fonctionnement de Git  Résoudre un conflit  Parfois, il peut arriver que l’une de vos modifications entre en conflit avec les modifications de quelqu’un d’autre, et que Git ne soit pas capable de fusionner automatiquement vos modifications  Dans ce cas, il sera demandé de corriger manuellement le conflit en allant éditer le(s) fichier(s) concerné(s)
  • 12. 27/10/2015 III. Le cas particulier de Git 12 3. Le fonctionnement de Git  Exemple d’un conflit Hello world! I’m using Git. Hi everyone! I’m using Git. Hello everyone! I’m using Git. Developer A Developer B La fusion est ici impossible Il y a un conflit ! Bonjour le monde ! J‘utilise Git. Version de base master branch B Version fusionnée manuellement
  • 13. 27/10/2015 III. Le cas particulier de Git 13 3. Le fonctionnement de Git  Les dépôts distants (remote)  La seule particularité d’un dépôt distant est d’être situé dans le « cloud » (ou dans un Intranet), et donc d’être accessible par tous 24h/24, 7j/7  Le dépôt distant permet à tous les collaborateurs de partager leurs modifications du code Dépôt distant Développeur A Développeur B git pullgit push
  • 14. 27/10/2015 III. Le cas particulier de Git 14 4. Comment installer Git ?  Pour installer Git, il suffit simplement de télécharger l’installateur sur le site officiel de Git : https://git-scm.com/downloads
  • 15. 27/10/2015 III. Le cas particulier de Git 15 5. Utiliser Git en lignes de commande  Après avoir installé Git, il suffit de lancer le logiciel « Git Bash » pour pouvoir utiliser Git en mode lignes de commande
  • 16. 27/10/2015 III. Le cas particulier de Git 16 5. Utiliser Git en lignes de commande  Cependant, l’utilisation de Git en lignes de commande peut-être relativement compliquée et non-intuitive et nous n’entrerons donc pas dans les détails  Nous préférerons donc l’utilisation d’une interface graphique comme celle développée par GitHub  Si vous voulez cependant en savoir plus sur l’utilisation de Git en lignes de commande, GitHub met à disposition un court aide-mémoire regroupant les principales commandes utilisables avec Git :  https://training.github.com/kit/downloads/fr/github-git-cheat-sheet.pdf
  • 17. 27/10/2015 IV. GitHub et son interface graphique 17 Le plan de cette partie : 1. Qu’est-ce que GitHub ? 2. Comment installer GitHub Desktop ? 3. Comment créer un dépôt GitHub et le cloner sur son ordinateur ? 4. L’interface de GitHub Desktop 5. Obtenir gratuitement un compte « Micro » grâce au programme « GitHub Education »
  • 18. 27/10/2015 IV. GitHub et son interface graphique 1. Qu’est-ce que GitHub ?  GitHub est avant tout une communauté  Elle regroupe plus de 11 millions d’utilisateurs  Plus de 28 millions de projets ont été créé sur GitHub  Elle permet de faciliter la collaboration de développeurs du monde entier sur un même projet  Mais GitHub est aussi une société d’hébergement, qui propose des solutions de gestion de développement de logiciels, basées sur le protocole Git  L’utilisation de GitHub est entièrement gratuite, dans le cadre d’un développement open source (et donc public)  GitHub a également développé un logiciel appelé « GitHub Desktop », qui permet de gérer son projet sous Git très facilement, via une interface graphique 18
  • 19. 27/10/2015 IV. GitHub et son interface graphique 1. Qu’est-ce que GitHub ?  GitHub est utilisé par de nombreuses sociétés du monde des nouvelles technologies pour leurs projets open source  Entre autres… 19
  • 20. 27/10/2015 IV. GitHub et son interface graphique 2. Comment installer GitHub Desktop ?  GitHub Desktop est disponible sur Windows et Mac  GitHub Desktop est gratuit et téléchargeable sur https://desktop.github.com  GitHub Desktop permet de faire simplement et graphiquement toutes les opérations liées à Git 20
  • 21. 27/10/2015 IV. GitHub et son interface graphique 3. Comment créer un dépôt GitHub et le cloner sur son ordinateur ?  Tout d’abord il faut créer un compte gratuitement sur https://github.com  Une fois le compte créé, il suffit de cliquer sur le petit pour créer un nouveau dépôt 21
  • 22. 27/10/2015 IV. GitHub et son interface graphique 3. Comment créer un dépôt GitHub et le cloner sur son ordinateur ?  Une fois le dépôt créé, il est possible de le cloner localement sur votre machine en un clic, via GitHub Desktop, en cliquant sur  Il est recommandé de cloner le dépôt dans le dossier htdocs de XAMPP 22
  • 23. 27/10/2015 IV. GitHub et son interface graphique 4. L’interface de GitHub Desktop  Les captures d’écrans ont été réalisées sur la version Windows de GitHub Desktop. L’interface sur Mac est très similaire, mais comporte quelques légères différences. 23Historique des modifications Détail des modifications Synchroniser le dépôt local avec le dépôt remote Créer une nouvelle branche Changer de branche
  • 24. 27/10/2015 IV. GitHub et son interface graphique 4. L’interface de GitHub Desktop  Les captures d’écrans ont été réalisées sur la version Windows de GitHub Desktop. L’interface sur Mac est très similaire, mais comporte quelques légères différences. 24 Liste des fichiers modifiés Détail des modifications Description du commit
  • 25. 27/10/2015 IV. GitHub et son interface graphique 5. Obtenir un compte « Micro » grâce au programme « GitHub Education »  GitHub offre la possibilité aux étudiants d’obtenir gratuitement un compte « Micro » (normalement à 7$ par mois), permettant d’avoir jusqu’à 5 dépôts privés durant la durée des études.  Pour cela, il suffit de se rendre sur https://education.github.com/ et de demander son « Student Developer Pack » !  Il n’est pas nécessaire que tous les membres du groupe fassent une demande. Seul le propriétaire du dépôt a besoin d’un compte « Micro » 25
  • 26. 27/10/2015 V. L’intégration de Git à l’IDE 26  L’exemple d’Atom, l’IDE développé par GitHub. Atom est gratuit et téléchargeable sur www.atom.io
  • 27. 27/10/2015 VI. Conclusion En conclusion, Git est un outil performant et simple d’utilisation, qui facilitera grandement le travail en équipe au sein de votre groupe durant le développement de votre site web. Les principales difficultés liées à l’utilisation de Git viennent de la résolution des éventuels conflits entre vos modifications et celles des autres. Pour éviter au maximum les conflits :  Eviter que plusieurs personnes travaillent sur une même partie du code en même temps  Avant de commencer à travailler, s’assurer de récupérer la dernière version du code  Publier ses modifications (faire un « commit ») le plus souvent possible  Eviter de « commit » de trop grosses modifications 27
  • 28. 27/10/2015 Merci pour votre attention ! Sources :  https://en.wikipedia.org/wiki/Version_control  https://en.wikipedia.org/wiki/Git_(software)  https://git-scm.com/doc  https://help.github.com/  https://training.github.com/  http://www-inf.it-sudparis.eu/SIMBAD/courses/2015/?page_id=6 28

Hinweis der Redaktion

  1. Voici ici l’exemple de la charte de notre groupe, ouverte dans Google Docs. Il est possible de visionner l’historique des modifications du fichier, qui les a faites et qu’est-ce-qui a été changé exactement.
  2. Certains IDE intègrent des fonctionnalités liées à Git. C’est par exemple le cas ici dans Atom, IDE créé par GitHub, qui permet de voir un coup d’œil les lignes contenant des modifications, la branche actuelle sur laquelle on se trouve, ou encore le nombre de caractères ajoutés/supprimés depuis le dernier commit.