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
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.
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.