SlideShare uma empresa Scribd logo
1 de 28
Baixar para ler offline
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

Mais conteúdo relacionado

Mais procurados

Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueVincent Composieux
 
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
 
Presentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxPresentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxFehmi Arbi
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsKokou Gaglo
 
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
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOpsMicrosoft
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfboulonvert
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsMohamed Ayoub OUERTATANI
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...XavierPestel
 
Méthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPMéthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPYouness Boukouchi
 
Learning git
Learning gitLearning git
Learning gitSid Anand
 
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
 
TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)Jérôme Tamborini
 
Conception et mise en place d'un Workflow du département VAS
Conception et mise en place d'un Workflow du département VASConception et mise en place d'un Workflow du département VAS
Conception et mise en place d'un Workflow du département VASAhmed MAALEJ
 

Mais procurados (20)

Jenkins
JenkinsJenkins
Jenkins
 
Github basics
Github basicsGithub basics
Github basics
 
Gitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement ContinueGitlab CI : Integration et Déploiement Continue
Gitlab CI : Integration et Déploiement Continue
 
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
 
Git 101 for Beginners
Git 101 for Beginners Git 101 for Beginners
Git 101 for Beginners
 
Présentation Docker
Présentation DockerPrésentation Docker
Présentation Docker
 
Presentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicauxPresentation pfe Système de gestion des rendez-vous médicaux
Presentation pfe Système de gestion des rendez-vous médicaux
 
Intégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec JenkinsIntégration continue et déploiement continue avec Jenkins
Intégration continue et déploiement continue avec Jenkins
 
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é
 
Introduction à DevOps
Introduction à DevOpsIntroduction à DevOps
Introduction à DevOps
 
Cours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdfCours Devops Sparks.pptx.pdf
Cours Devops Sparks.pptx.pdf
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Présentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clientsPrésentation PFE: Système de gestion des réclamations et interventions clients
Présentation PFE: Système de gestion des réclamations et interventions clients
 
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
Pipeline Devops - Intégration continue : ansible, jenkins, docker, jmeter...
 
Méthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XPMéthodes agiles: Scrum et XP
Méthodes agiles: Scrum et XP
 
Learning git
Learning gitLearning git
Learning 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
 
Une introduction à Hive
Une introduction à HiveUne introduction à Hive
Une introduction à Hive
 
TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)TP Git avancé DevoxxFR 2018 (exercices)
TP Git avancé DevoxxFR 2018 (exercices)
 
Conception et mise en place d'un Workflow du département VAS
Conception et mise en place d'un Workflow du département VASConception et mise en place d'un Workflow du département VAS
Conception et mise en place d'un Workflow du département VAS
 

Destaque

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 vs SVN
Git vs SVNGit vs SVN
Git vs SVNneuros
 

Destaque (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 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
 
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
 
Les bases de git
Les bases de gitLes bases de git
Les bases de git
 
Git vs SVN
Git vs SVNGit vs SVN
Git vs SVN
 
DevOps
DevOpsDevOps
DevOps
 

Semelhante a 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
 
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
 
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Makina Corpus
 

Semelhante a 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
 
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...
 
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
 

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

Notas do Editor

  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.