Le protocole Git et GitHub
Groupe G2A - Alexis Dahan, Alexandre Gay, Hugo MichardLouis Arbaretier, Thibaut Vlacich, Léo Plouvier 1
27/10/2015
27/10/2015
2
Sommaire de la présentationI. Introduction aux systèmes de gestion de versionsII. Pourquoi utiliser un système de gestion de versions ?III. Le cas particulier de GitIV. GitHub et son interface graphiqueV. L’intégration du protocole Git à l’IDEVI. Conclusion
27/10/2015
3
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
27/10/2015
4
Un exemple simple de gestion de versions L’exemple de Google Docs Historique des
modifications
La modificationeffectuée
27/10/2015
5
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
27/10/2015
6
III. Le cas particulier de GitLe plan de cette partie :
1. Qu’est-ce que Git ?2. Pourquoi utiliser Git face à d’autres solutions ?3. Le fonctionnement de Git4. Comment installer Git ?5. Utiliser Git en lignes de commande
27/10/2015
7
III. Le cas particulier de Git1. 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
8
III. Le cas particulier de Git2. 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
9
III. Le cas particulier de Git3. 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
10
III. Le cas particulier de Git3. Le fonctionnement de Git
Le principe des branchesmaster
Ma fonctionnalité
Création d’une nouvelle branche Fusion de la nouvelle branchedans 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
11
III. Le cas particulier de Git3. 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
13
III. Le cas particulier de Git3. 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 codeDépôt distant
Développeur A Développeur B
git pullgit push
27/10/2015
14
III. Le cas particulier de Git4. 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
15
III. Le cas particulier de Git5. 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
16
III. Le cas particulier de Git5. 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
17
IV. GitHub et son interface graphiqueLe 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 Desktop5. Obtenir gratuitement un compte « Micro » grâce au programme
« GitHub Education »
27/10/2015
18
IV. GitHub et son interface graphique1. 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
27/10/2015
19
IV. GitHub et son interface graphique1. 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…
27/10/2015
20
IV. GitHub et son interface graphique2. 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
27/10/2015
21
IV. GitHub et son interface graphique3. 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
27/10/2015
22
IV. GitHub et son interface graphique3. 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
27/10/2015
23
IV. GitHub et son interface graphique4. 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.
Historique des modifications
Détail des modifications
Synchroniser le dépôt local avec le dépôt remote
Créer une nouvelle brancheChanger de branche
27/10/2015
24
IV. GitHub et son interface graphique4. 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.
Liste des fichiers modifiésDétail des modifications
Description du commit
27/10/2015
25
IV. GitHub et son interface graphique5. 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 »
27/10/2015
26
V. L’intégration de Git à l’IDE L’exemple d’Atom, l’IDE développé par GitHub.Atom est gratuit et téléchargeable sur www.atom.io
27/10/2015
27
VI. ConclusionEn 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/10/2015
28
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
Top Related