EGit : quand Git s’invite dans Eclipse Online

Formation

En Ligne

Prix sur demande

Description

  • Typologie

    Formation

  • Méthodologie

    En ligne

Nous vous proposons des cours ouverts pour se former autrement, pour devenir acteur de votre vie. Nous vous aidons à prendre votre envol, mais ça ne s'arrête pas là. Notre volonté est de vous accompagner tout au long de votre vie, dans votre parcours professionnel.Grâce à cette formation vous pourrez acquérir les connaissances nécessaires qui vous permettrons d’ajouter des compétences à votre profil et obtenir de solides aptitude qui vous offriront de nombreuses opportunités professionnelles.

Questions / Réponses

Ajoutez votre question

Nos conseillers et autres utilisateurs pourront vous répondre

À qui souhaitez-vous addresser votre question?

Saisissez vos coordonnées pour recevoir une réponse

Nous ne publierons que votre nom et votre question

Emagister S.L. (responsable du traitement) traitera vos données pour mener des actions promotionnelles (par e-mail et/ou téléphone), publier des avis ou gérer des incidents. Vous pouvez consulter vos droits et gérer votre désinscription dans la politique de confidentialité.

Les Avis

Le programme

Introduction du cours

Bienvenue dans ce cours dans lequel je vais vous présenter EGit, un plug-in Eclipse qui ajoute le support de Git. Nous verrons pourquoi il peut être intéressant de l’utiliser, comment l’installer et comment s’en servir.

Bien sûr, étant donné qu’EGit est basé sur Git il est recommandé de connaître cet outil pour pouvoir suivre ce cours avec un minimum de confort. Mais pour ceux qui n’ont toujours aucune idée de ce que je raconte, ne vous inquiétez pas, nous allons faire un petit rappel d’introduction. Et qui sait, peut-être qu'après avoir découvert cet outil puissant dont vous ignoriez l'existence jusqu'ici, vous ne pourrez plus vous en passer ! Pour les autres, assurez-vous d’avoir Eclipse à portée de clic, nous allons rapidement nous en servir. ;)

Quelques rappels concernant Git

Avant de parler d’EGit, nous allons rappeler brièvement ce qu’est Git et à quoi ça sert. Toutefois, je ne vous apprendrais pas à l’utiliser, pour plus de détails je vous renvoie donc vers le cours de Mathieu Nebra. Encore mieux, vous pouvez aller lire le guide officiel, d’autant plus que pour une fois ils ont fait l’effort de le traduire en plusieurs langues, y compris le français !

Pour ceux qui sont toujours là, rendez-vous au prochain sous-titre pour avoir un aperçu de Git.

Git, à quoi ça sert ?Un outil intelligent

Git est ce qu’on appelle un outil de gestion de versions (Version Control Software en anglais). D'après Wikipédia :

« Un logiciel de gestion de versions agit sur une arborescence de fichiers afin de conserver toutes les versions des fichiers, ainsi que les différences entre les fichiers. »

Si ce n'est pas assez clair je vous invite à lire l’article complet qui explique un peu plus le fonctionnement et l'utilité d'un tel outil.

Pour ceux qui connaissent SVN (également appelé Subversion), le principe est le même bien qu'il existe quelques différences fondamentales sur lesquelles je ne m'attarderais pas ici. La seule chose que je peux vous dire, c’est de ne pas vous fier aux termes communs à ces deux DVCS, puisqu’ils n’ont pas la même signification pour les deux.

Un concept familier

Toutefois, même si vous ne connaissez ni Git ni SVN ni aucun autre outil de gestion de versions, vous en avez sûrement déjà utilisé sans même le savoir ! :D Hé oui, il faut savoir que Dropbox ou encore Google Drive utilisent un système similaire. Par exemple sur Dropbox il est possible de voir les « Versions précédentes » d'un fichier et de le restaurer à un état antérieur. Git c'est à peu près ça, mais en plus complet.

D’ailleurs peut-être que vous avez déjà entendu parler de sites comme BitBucket ou le très populaire GitHub. Ce sont en fait des plateformes qui vous permettent de sauvegarder des projets qui utilisent Git dans le “cloud” comme on dit. Nous verrons comment faire un peu plus loin.

Maintenant que nous avons vu en substance à quoi servait Git, nous allons voir les différentes façons de l'utiliser.

L'invite de commande

Vous l’aurez compris, Git c’est génial. Cependant, il y a un petit détail qui risque de refroidir les moins chevronnés d’entre vous, je veux parler de ça (âmes sensibles s'abstenir) :

git init git add README.md git commit -m "Commit du fichier README.md" git fetch core ...

(Au cas où, le numéro des urgences est le 112)

Et là je perçois la déception qui envahit certains d’entre vous et je vous comprends, car moi aussi j’y étais allergique quand j’ai commencé la programmation et cela a duré un bon moment. Mais avant de partir, je vous conseille de terminer la lecture de ce chapitre, juste au cas où. ;)

Bon, donc si je comprends bien Git n’a pas d’interface ?

Celle-ci en est une. :) À la base Git a vu le jour sur Linux et s’utilise donc en mode “texte”.

D’ailleurs ce n’est pas une coïncidence puisqu’il a été développé par Linus Torvalds, qui n’est autre que le papa de ce système d’exploitation.

Les inconvénients

Toutefois, il faut avoir l'habitude d'utiliser l’invite de commande pour que ce ne soit pas une source de perte de temps, ce qui implique de se souvenir des différentes commandes. Et pour être honnête, même quand on l'utilise régulièrement, ce sont souvent les mêmes commandes qui reviennent. Il arrive donc qu'on ait à en utiliser une dont on ne connaît pas la syntaxe exacte. L'invite de commande n'est donc pas du goût de tout le monde.

Malgré tout, je ne peux que vous encourager à faire l'effort et à tenter l'expérience. Vous verrez qu'une fois qu'on a pris l'habitude, on est beaucoup plus rapide au clavier qu'à la souris.

Si l'invite de commande ne vous dérange pas, mais que vous êtes sous Windows, il suffit d’installer msysGit, ou de passer par un émulateur de commandes Linux pour Windows comme Cygwin.

Bon, mais ne soyez pas déçus, je ne vous ai pas encore tout dit ! :p Il existe évidemment des solutions permettant d’utiliser Git en mode graphique et c’est ce dont nous allons parler tout de suite.

Outils graphiques pour Git

Techniquement l’invite de commande est une interface graphique, je vous l’accorde. Mais en général quand on parle d’interface graphique on parle de fenêtres, avec des boutons, des listes déroulantes, etc. c'est à dire une utilisation plus axée sur la souris que le clavier.

Comme je ne connais pas par coeur le nom de tous les outils permettant d’utiliser Git en mode graphique, je vais me contenter de vous renvoyer sur cette liste non exhaustive d’outils graphiques existants. Une autre liste, beaucoup plus fournie, est également disponible ici.

Toutefois, ne pensez pas qu’une interface graphique est plus pratique à utiliser qu’une invite de commande simplement parce qu’elle est plus jolie. Certes, vous échappez au fait d’avoir à apprendre les commandes texte par coeur, mais vous vous retrouvez quand même face à quelque chose que vous ne connaissez pas.

C'est-à-dire ?

Quelle que soit l’application que vous utiliserez, vous devrez vous familiariser avec son interface ! Il vous faudra par exemple connaître l’emplacement des différentes fonctionnalités, supporter les temps de chargement, faire face à d’éventuels bugs graphiques… Il y aura donc quand même une phase d’apprentissage.

Un autre inconvénient, c’est que toutes ces solutions ne sont pas gratuites. Toutes ne sont pas non plus disponibles sur tous les systèmes d’exploitation. De plus, certaines nécessitent évidemment d’être administrateur sur son ordinateur pour être installées, ce qui n’est pas toujours le cas. Mais ce n’est pas tout.

Les inconvénients

Prenons le cas d’un développeur que nous appellerons Bob. Bob est malin et comme Bob est malin il utilise Git comme outil de gestion de versions.

Comme tout développeur le sait, développer une application (ou un site web ou ce que vous voulez) prend généralement du temps et implique donc de nombreuses modifications du code. De plus, pour tirer parti de Git au maximum, il faut commiter régulièrement pour bien séparer les modifications les unes des autres et ainsi procéder étape par étape lors du développement. Cela permet notamment d’éviter les conflits lorsque vous devez fusionner plusieurs bouts de code développés séparément.

Cependant, comme Bob est développeur, Bob est aussi un peu feignant sur les bords. Comprenez par là que s'il peut coder autant en faisant moins d’efforts, il ne va pas hésiter une seconde. Et cela passe par l’utilisation des bons outils. Et justement, Bob utilise une magnifique application graphique pour gérer ses dépôts Git. Mais ce qui dérange Bob, c’est qu’il passe son temps à faire l’aller-retour entre Eclipse et l’application, ce qui lui fait perdre énormément de temps. De plus quand il modifie son code, les changements ne sont pas pris en compte en temps réel dans l’autre application, ce qui l’oblige à lui demander de se rafraîchir.

Enfin, Bob n’aime pas l’ergonomie de l’application : il y a trop d’écrans à parcourir, trop de clics à faire pour de simples actions comme voir l’historique des commits, la liste des dépôts, les différences au niveau du code… Bob aimerait quelque chose de plus simple.

Bon venons-en au fait, qu'est-ce que tu proposes ?

Heureusement il y a une solution et celle-ci s’appelle EGit. Mais je ne vous en dis pas plus, car c’est ce dont nous allons parler dans le prochain chapitre. ;)

Lexique de base de Git

Si vous avez lu les sections précédentes vous avez dû remarquer que j’utilisais des termes un peu bizarres comme commit, dépôt etc. o_O Ce sont en fait des termes techniques spécifiques à Git. Étant donné que je ne vais pas tous les détailler à chaque fois, voici une liste non exhaustive des termes que vous allez rencontrer le plus souvent, que ce soit dans ce cours ou dans le reste de votre vie de développeur. Certains termes moins courant seront détaillés sur le tas.

Commit

Un commit est un enregistrement de l'arborescence d’un dossier et du contenu de chaque sous-dossier et fichier à un instant t. Une succession de commits constitue ce qu’on appelle l’historique des commits.

Dépôt

Un dépôt est un dossier qui porte le nom .git. C'est là que Git va stocker toutes les informations en rapport avec votre projet comme la liste des commits effectués, la liste des branches, etc.

Étant donné que c’est un dossier, rien ne vous empêche de le partager avec d’autres personnes. Même si vous ne leur fournissez que le dépôt et pas le contenu du projet (un code source par exemple), elles auront accès comme vous à l’historique des commits et Git sera capable de restaurer n’importe quel fichier depuis un point dans cet historique.

Branche

Une branche peut être vue comme une déviation de votre projet. Cela permet par exemple à plusieurs personnes travaillant sur un même projet de développer des fonctionnalités différentes sans que leurs modifications respectives ne créent de conflits. Un même commit peut ainsi faire partie de plusieurs branches s'il est le point de départ de celles-ci.

En pratique, imaginez que vous travailliez sur une application et que vous venez juste de publier la version 2.3. Le code de cette version se trouve dans une branche appelée master, la branche principale. Vous commencez alors à travailler sur la version 2.4 avec votre équipe. Chacun crée donc une branche à partir du dernier commit de la branche master pour avoir la version la plus récente du code. Lorsque vous déciderez de livrer la version 2.4, vous allez fusionner les branches de chaque membre de l’équipe dans master, puis repartir du dernier commit pour développer la version 2.5, et ainsi de suite (la fusion est appelée merge).

Push

Push (pousser) est l’opération qui consiste à envoyer le contenu de son dépôt sur un autre dépôt situé généralement sur une machine distante comme un serveur, de façon à pouvoir le récupérer plus tard depuis une autre machine. Cela permet également à plusieurs personnes de posséder une copie des fichiers sur sa machine ainsi que d’une copie en ligne à partir de laquelle chaque membre peut contribuer. Mais cela implique de pouvoir récupérer les modifications des autres pour ne pas les écraser. :D

Pull

Pull (tirer) est donc l’opération qui permet de récupérer le contenu d’un dépôt distant dans son dépôt local.

En pratique, cette opération est en fait la succession de deux autres actions : fetch puis merge (déjà vu plus haut).

Tag

Un tag est une étiquette que vous attachez à un commit de façon à l’identifier. Les tags peuvent être très utiles, ne serait-ce que pour garder trace de l’avancement de vos projets.

En pratique c’est une simple chaîne de caractères. Vous pouvez ainsi donner des noms aux commits les plus importants. Par exemple si on reprend les versions du système Android, on aura un tag Ice Cream Sandwich, un tag Jelly Bean et ainsi de suite. Vous pouvez également utiliser un numéro de version si vous le souhaitez (4.0, 4.1...), c’est d'ailleurs l’utilisation la plus courante.

Les tags sont uniques, vous ne pouvez donc pas en créer deux avec le même nom, ce qui de toute façon n’aurait pas beaucoup de sens.

Voilà, maintenant vous êtes bien équipés pour suivre le reste de ce cours ! :)

Partons à la découverte d’EGit

Tout d’abord, permettez-moi d’expliquer à ceux qui dorment au fond de la classe la différence entre Git et EGit.

Git, comme je vous l’ai expliqué dans la première partie, est un outil de gestion de version. Si vous ne voyez pas de quoi je vous parle je vous invite à la relire, car je ne reviendrais pas sur cette explication.

EGit quant à lui, est simplement un plug-in pour Eclipse, qui fournit une interface graphique pour utiliser Git directement depuis l’IDE.

Voyons plus en détails de quoi il s’agit.

Faisons les présentations

Vous l’aurez compris en lisant les chapitres précédents, l’avantage des interfaces graphiques est qu’elles sont visuellement plus attirantes, elles sont donc plus adaptées au grand public. Cependant, vous, vous êtes développeur, vous avez donc surtout besoin d’outils performants et pratiques à utiliser. De plus, si vous utilisez un Environnement de Développement Intégré (IDE en anglais) comme Eclipse ou NetBeans, vous vous attendez justement à avoir tous vos outils au même endroit et pas fragmentés entre plusieurs applications.

Et justement, l'outil que je vais vous présenter, EGit, est un simple plug-in pour Eclipse qui vous permet d'utiliser Git dans vos projets directement depuis l'IDE.

Petit rappel des avantages d’EGit par rapport aux applications graphiques tierces :

  • Pas d’aller-retour entre Eclipse et une application tierce. Votre IDE préféré contient tous les outils nécessaires. Un sous-menu ainsi que des raccourcis (à ajouter manuellement) et plusieurs vues vous permettent de l’utiliser facilement.

  • EGit est totalement gratuit et fonctionne sur toutes les plateformes (il est basé sur JGit, une implémentation Java de Git).

  • En tant que plug-in et comme Eclipse est portable, il ne nécessite pas d’installation comme pour un programme Windows par exemple, donc vous pouvez l’utiliser même si vous n'êtes pas administrateur.

  • Contrairement à certaines applications graphiques, EGit ne vous impose aucune contrainte, que ce soit quant à l’emplacement des dépôts sur votre machine, au nombre de dépôts distants, etc. Rien ne vous empêche d’avoir plusieurs espaces de travail (workspaces) avec des dépôts distincts, vous êtes libres !

Le gain de temps n'est donc pas négligeable. Vous pouvez donc, en quelques clics, voir les anciennes versions de votre code (checkout), annuler vos derniers commits (reset), consulter l'historique de vos commits (glog), et même l'historique récent d'enregistrement de chaque fichier (chaque fois que vous appuyez sur CTRL
+S
) et pleins d'autres trucs qui boostent votre productivité et vous donnent presque envie de vous lever le matin pour aller travailler. :D

Et là, vous vous rappelez pourquoi Eclipse est votre IDE préféré, ou alors vous vous demandez pourquoi il ne l'est pas encore… :-° Mais trêve de blabla, rentrons dans le vif du sujet. La première chose que nous verrons est comment installer EGit !

EGit : quand Git s’invite dans Eclipse Online

Prix sur demande