Utiliser Git avec Eclipse

De Analyse Développement Hacking
Révision datée du 9 août 2019 à 12:45 par Anonymous (discussion | contributions) (Configurer le profil utilisateur de GIT)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Sauter à la navigation Sauter à la recherche
Naviguer dans ce wiki : Accueil du wiki - Objectifs - Administrateur - Bureautique - Développeur - Intégrateur - Marketing - Multimédia - Objets numériques - Jeux - We make Hack
Consulter le site : Accueil du site - Annuaire - Blog - Forum - Outils - Utilisateur     Consulter le Redmine : Accueil du Redmine

Utiliser Git avec Eclipse

Prérequis

Prendre connaissance de la page suivante : Utiliser Eclipse.
Une fois la dernière version de Eclipse installée, on peut se lancer dans l'utilisation de Git avec Eclipse.

Configurer le profil utilisateur de GIT

Il est nécessaire de renseigner un utilisateur spécifique à Git dans les paramètres de Eclipse pour pouvoir utiliser GIT avec Eclipse.
Aller dans : Fenêtre > Préférences > Équipe > Git > Configuration
Add Entry pour ajouter une identité avec pour valeur la clé et son contenu : user.email & user.name
L'identité de l'utilisateur est représentée par un nom et un mail qui seront utilisés dans l'historique des modifications.
mail@visionduweb.com - Zer00CooL

User.email.png User.name.png
Les paramètres du système ne sont généralement pas utilisés sur les plates-formes GNU/Linux.
Fenêtre > Préférences > Équipe > Git > Configuration > Onglet "System Settings".

Convertir les délimiteurs de fin de ligne pour utiliser Git avec Linux et Windows

Convertir les délimiteurs de fin de ligne pour utiliser Git avec Linux et Windows.

Utiliser MyLyn

La version Eclipse PDT met à disposition MyLyn.

Importer un projet existant pour ne pas avoir besoin de le configurer depuis Eclipse

Importer un projet existant depuis un projet Github distant

Le projet Github distant est hébergé sur Github.
Afficher la perspective GIT pour accéder aux commandes Git de Eclipse.
Fenêtre > Ouvrir la perspective > Autre ... Git
Un onglet Dépôts Git est affiché.
Cliquer sur la ligne du profil GIT.
Utiliser le bouton : Clone a Git Repository and add the clone to this view. Choisir Github. Donner le nom du projet pour le retrouver sur Github.
Exemple : bot-cannabis-educatif
Search
Sélectionner le repo et cliquer sur suivant.
Choisir la branche master et cliquer sur suivant.
Laisser la configuration par défaut et cliquer sur Terminer.
Une nouvelle ligne apparaît dans l'onglet Git Repositories.
Le sous dossier Working Tree contient les fichiers du projet.

Importer un projet existant depuis un projet Github local

Le projet Github local est hébergé localement car il a déjà été récupéré depuis Github.
Si un dépôt local existe, depuis Github par exemple, il suffit d'importer directement le projet Git hébergé localement.
Il est également possible d'importer un projet Git distant depuis Github.
La configuration de Git est importée avec le projet existant.
Cette configuration facilitera la prise en compte des modifications en local (commit) puis de pousser les modifications vers Github (push).
Fichier / Importer / Git / Project from Git / Existing local directory / Ajouter / Localiser le projet sur la machine locale. / Cocher la case pour sélectionner puis cliquer sur Terminer.
On est toujours sur la fenêtre d'import, cliquer sur suivant, sélectionner "Import as general project puis cliquer sur suivant, accepter le nom de projet et le répertoire en cliquant sur Terminer.

Utiliser la vue PHP

Ouvrir et modifier un fichier du projet

Cliquer sur un fichier pour ouvrir le fichier.
Faire des modifications et enregistrer le fichier.

Créer des tâches

Créer des tâches en local

Cliquer sur nouvelle tâche et choisir "Local" pour un dépôt personnel Local.

Créer des tâches partagées vers les issues de Github

Depuis la vue  de fenêtre Généralités / Tâches :
Cliquer sur nouvelle tâche et choisir "Ajouter un dépôt" pour sélectionner Github distant à l'aide du connecteur Github.
Avec le connecteur de tâches de Github, les nouvelles tâches ajoutées apparaîtrons sur Eclipse et sur Github.
Les issues pourront être récupérées sur Eclipse et le suivi des issues sera mis à jour sur Github.
Des catégories peuvent être créées pour classer les issues dans Eclipse.
Pour afficher les tâches déjà existantes de Github :
Voir si nécessaire : Créer une requête à partir de la recherche.
Voir si nécessaire : Affiner la recherche 

Depuis la vue  de fenêtre Généralités / Rechercher :
Afficher toutes les issues du projet Github.
Chaque issue peut alors être ajoutée à une catégorie créée précédemment, ce qui permet de retrouver les tâches depuis la "Liste des tâches".

Utiliser la vue Git

Commit le fichier du projet en local

La fenêtre du bas propose l'onglet Git Staging.
On peut lire Unstaged Changes (1). Cliquer sur le bouton + pour ajouter le fichier à la liste des fichiers qui seront commit.
Renseigner le message pour le commit.
Laisser le nom de l'auteur et du comitter par défaut.
Cliquer sur Commit.

Push to Upstream le fichier du projet vers Github

Revenir à l'onglet Git Repositories sur la gauche.
La branche master affiche une flèche vers le haut et le chiffre 1 pour indiquer qu'un commit est en attente d’envoi sur le serveur Github.
Clic droit sur la ligne et Push to Upstream.
Renseigner le nom d'utilisateur Github et le mot de passe de Github.
Valider.
(J'ai un message d'erreur si je demande à Eclipse de conserver le mot de passe.)
Rafraîchir la page Github qui contient le code du projet : https://github.com/ZerooCool/bot-cannabis-educatif
Le code a bien été mis à jour.

Attention aux commits trop rapides depuis la perspective Git

Une fois un fichier modifié, on change de perspective pour utiliser la perspective de Git.
Dans l'onglet Git Staging on observe les fichiers ayant été modifiés, qui peuvent être proposé au commit, ainsi que la zone de commentaire.
Je constate ce qui s'apparente à un bogue.
Si je sélectionne les fichiers modifiés pour les ajouter au commit, avec le bouton "+".
Je commence à saisir un texte pour expliquer la raison du commit, et, en cas de touche entrée pour changer de ligne, le commit est envoyé en local, mais, pas sur le dépôt distant.
Je ne trouve pas alors la commande pour pousser le commit en attente.
Pour éviter ce problème, il vaudrait mieux commencer par rédiger la raison du commit, car, la touche entrée refusera d'envoyer le commit puisque aucun fichier n'aura été proposé à l'ajout.
Une fois le message rédigé, ajouter ses fichiers au commit, et, cliquer sur le bouton Commit and Push. Les modifications sont prises en compte localement et sur la branche distante de Github.
Finalement, je comprend qu'on peut Push les commits qui sont en attente depuis l'espace de gauche, en cliquant droit sur la branche principale du projet, Push Branch (Nom de la branche du projet.)
Push to Upstream ... Pousse votre branche comme vous le souhaitiez vers la branche de suivi à distance.
Push ... Ouvre une boîte de dialogue et vous permet de spécifier les refspecs à pousser, y compris les balises, les cas spéciaux tels que HEAD: refs / heads / master, etc.
Source : https://stackoverflow.com/questions/8762007/whats-the-difference-between-push-and-push-to-upstream-in-eclipse

Consulter l'historique de Git

Dans la fenêtre du bas, aller dans l'onglet Git Reflog pour consulter les dernières modifications.
Double cliquer sur une modification pour afficher une nouvelle fenêtre d'informations. En bas à gauche de cette fenêtre, deux onglet sont disponibles : Commit et Diff.
Utiliser l'onglet Diff pour voir les dernières modifications apportées au fichier.

Utiliser la vue Synchronisation de l'équipe

Utiliser cherry-pick pour récupérer un commit et l'appliquer sur une autre branche

La commande git cherry-pick permet de récupérer une modification poussée sur une branche vers une autre branche grâce à l'ID du commit.
Avec Github, on pousse les correctifs comme d'habitude et on obtient un ID servant de référence pour les correctifs effectués, visible depuis l'historique de Github :
https://github.com/ZerooCool/phpsecinfo/commit/ca82f1c0a9825afac5690619775bd2d59e8123fa#diff-04c6e90faac2675aa89e2176d2eec7d8
L'ID pour les modifications apportées est le suivant : ca82f1c0a9825afac5690619775bd2d59e8123fa
Depuis la vue PHP.
Avec Eclipse, cliquer droit sur la branche de développement, et, changer de branche pour aller sur la branche devant recevoir cette même modification.
Si les branches ne sont pas encore affichées localement, on les affiche à l'aide du dépôt distant pour permettre à Eclipse de les identifier localement.
Switch To / Other / Remote Tracking - Choix de la branche - Check Out / Check Out as New Local Branch / Laisser les options par défaut et valider.
On retrouve à ce moment la nos branches disponibles dans Eclipse, dans la vue de gauche, dans Local.
Depuis la vue Synchronisation de l'équipe.
Pour pouvoir appliquer un cherry-pick il va être plus pratique pour différencier cette pratique d'ouvrir une nouvelle vue de Eclipse, la vue Synchronisation de l'équipe.
Je me positionne sur la branche qui va recevoir le fichier modifié en provenance du commit effectué sur la branche de développement.
Deux fenêtre nous intéressent, la fenêtre Synchroniser, et, Commun.
######
# Vérifier cette étape, j'ai du effectuer une action pour arriver à afficher les informations dans les fenêtres !
# Sûrement avec le bouton " Synchroniser Git " et la sélection du dépôt pour accès direct par le dépôt.
######
Depuis la fenêtre Synchroniser, on voit que l'on est bien sur la branche devant recevoir la modification.
Depuis la fenêtre Commun, on peut observer les dernières modifications ayant été appliquées.
C'est depuis la fenêtre Commun que la commande cherry-pick peut être effectuée. On localise le commit a appliquer sur la nouvelle branche, clic droit, Cherry-Pick.
On pousse alors ce commit, depuis la vue Commun, cliquer droit sur le dernier élément en haut de la liste, Push Commit.

Eclipse-cherry-pick.png

On peut revenir à la vue précédente avant de pousser le commit, sur la vue de Git, pour observer visuellement les modifications sur le fichier. Les modifications sont bien appliquées sur le dépôt local.
On ne voit aucun fichier dans la fenêtre Git Staging, il a déjà été commit localement. Au niveau du nom de dépôt on observe une flèche vers le haut qui indique un commit à pousser.
Il ne reste plus qu'à envoyer le fichier vers le dépôt distant de Github, ce qui aurait pu être fait depuis la vue précédente, depuis la fenêtre Commun, avec Push Commit.
On peut toujours pousser les fichiers en attente depuis la vue Git en cliquant droit sur le nom de la branche en haut à gauche de l'écran, puis, Push to Upstream.

Vérifier si des fichiers du dépôt distant sont à récupérer

Un chiffre discret est affiché dans le projet affiché à gauche, dans le lien racine du projet.
Depuis la fenêtre synchroniser, cliquer sur le bouton Pull.

Créer un dépôt local avec deux branches

Créer un projet PHP.
Donner un nom : HelloWorld.
Terminer.
La perspective PHP est proposé. Accepter.
Créer un nouveau fichier PHP dans le projet HelloWorld.
Donner un nom au fichier : HelloWorld.php
Ajouter une ligne de code : echo "Hello World";
Enregistrer le fichier.
Cliquer droit sur le projet PHP.
Team > Partager le projet.
Cliquer la case, utiliser ou créer le repository dans le dossier parent du projet.
Sélectionner le projet.
Cliquer sur le bouton : Create Repository. L'adresse sera par exemple de la forme /opt/lampp/htdocs/Eclipse-Workspace/HelloWorld (/.git)
Terminer. Un dossier de Repository est maintenant disponible.
La première ligne du projet dans la vue de l'Explorateur de Projet à gauche affiche : HelloWorld [HelloWorld NO-HEAD]
Cliquer droit sur le projet PHP.
Team > Commit > Ajouter les fichier avec le bouton ++ ainsi qu'un commentaire. Valider le commit.
La première ligne du projet dans la vue de l'Explorateur de Projet à gauche affiche : HelloWorld [HelloWorld master]
La branche principale est créée.
Cliquer droit sur le projet PHP.
Team > Switch To > New Branch
Nommer la nouvelle branche HelloWorld_2 et laisser les options par défaut. Valider.
La première ligne du projet dans la vue de l'Explorateur de Projet à gauche affiche : HelloWorld [HelloWorld HelloWorld_2]
La branche secondaire est créée.

Commit des changements sur une branche

Cliquer droit sur le projet PHP.
Team > Switch To > master pour revenir sur la branche principale master.
Changer le code du fichier HelloWorld.php pour echo "Hello World Master";
Enregistrer le fichier modifié.
Team > Commit > Ajouter le fichier modifié avec le bouton ++ ainsi qu'un commentaire. Valider le commit.
Cliquer droit sur le projet PHP.
Team > Switch To > HelloWorld_2 pour revenir sur la branche secondaire HelloWorld_2.
On constate que HelloWorld_2 affiche le code echo "Hello World"; alors que la branche master qui a été modifiée affiche echo "Hello World Master";
Le contenu des deux branches est donc bien différent.
Modifier le code de la seconde branche pour echo "Hello World Secondaire";
Team > Commit > Ajouter le fichier modifié avec le bouton ++ ainsi qu'un commentaire. Valider le commit.
Cliquer droit sur le projet PHP.
Team > Switch To > master pour revenir sur la branche principale master.

Merge une branche vers une autre branche

Nous sommes sur la première branche master qui pourrait contenir un code peu avancé prêt à être remplacé par la branche secondaire HelloWorld_2.
Cliquer droit sur le projet PHP.
Team > Merge > Select a branch or tag to merge into the 'master' branch
On choisi la branche HelloWorld_2 qui va être merge dans la branche master.
Merge options : Commit (Commit the result). Fast forward options : If a fast-forward, only update the branch point.
Valider le bouton Merge.
La branche master affiche maintenant echo "Hello World Secondaire";
Le code en développement de la branche secondaire a bien été merge vers la branche principale.
En cas de conflit, il est possible de sélectionner l'information à conserver, un code délimitera les zones de conflits pour une correction manuelle.
Le merge n'est pas automatique à ce moment la et le code nécessite une relecture.

Notes

Le commit est prioritaire pour enregistrer les modifications apportées sur une branche. Bien penser à commit son code avant de merge.
Changer de perspective pour changer de branche plus facilement : Fenêtre > Perspective > Ouvrir la perspective > Autre > Git

Créer un patch

Créer un patch est également une option intéressante de Eclipse.
Le patch permet d'appliquer des changements sur un fichier initial.
Lors de l'utilisation du patch, un dossier "a" est créé.
Placer dans ce dossier le fichier initial.
Appliquer le patch, ou, le patch inverse.
Le fichier initial qui a été copié dans le dossier "a" se voit modifié par le patch.
Compléter par la suite pour créer et utiliser un patch.

Configurer EGit

Dans Eclipse PDT, MyLyn est proposé par défaut, je n'ai donc pas eu besoin de tester EGit.
Il n'est pas nécessaire d'installer MyLyn dans le cas d'une utilisation basique de EGit.
Installer EGit en utilisant le lien : http://download.eclipse.org/egit/updates
Installer uniquement Eclipse EGit.

Installer le connecteur Github

L'adresse de dépôt Egit suivante permet d'installer le connecteur Github si celui ci n'est pas présent sur votre version de Eclipse, comme dans mon cas avec le dernière version de Eclipse PHP 2019.
Ce connecteur fonctionne également avec Mylyn. Il ne nécessite pas l'usage exclusif de Egit.
http://download.eclipse.org/egit/github/updates

Bibliographie

Ok-ko.png Tips and Tricks: Using Eclipse with GitHub : https://eclipsesource.com/blogs/2012/08/28/tips-and-tricks-using-eclipse-with-github/
Utiliser Git avec Eclipse : https://www.supinfo.com/articles/single/5342-utilisation-git-avec-eclipse
Source : http://tutoriels.meddeb.net/tag/git-eclipse/
Source : http://tutoriels.meddeb.net/tuto-git-utiliser-git-avec-eclipse/
Source : http://tutoriels.meddeb.net/tuto-git-utiliser-git-avec-eclipse-publier-tagger-visualiser/
Source : https://eclipsesource.com/blogs/tutorials/egit-tutorial/
Source : https://www.php-geek.fr/configurer-et-utiliser-egit-eclipse.html
Source : https://www.supinfo.com/articles/single/5342-utilisation-git-avec-eclipse
Source : https://help.eclipse.org/photon/topic/org.eclipse.egit.doc/help/EGit/User_Guide/User-Guide.html?cp=31

NAVIGATION

PARTICIPER ET PARTAGER

Vous êtes sur le wiki de Vision du Web.
Les pages présentées sur le wiki évoluent tous les jours.
Certaines recherches sont peu abouties et incluent des erreurs.
Pour participer sur le wiki, créer un compte utilisateur en haut à droite.
La recherche interne du wiki permet de trouver le contenu qui vous intéresse.
Les informations présentes sur ce wiki sont issues d'une recherche personnelle.
Identifiez-vous pour poser vos questions sur la page de discussion de VisionDuWeb.
Améliorer le contenu des pages en faisant des propositions depuis l'onglet discussion.
Les informations du wiki ne doivent pas servir à nuire à autrui ou à un système informatique.
De nombreux outils gratuits sont listés et disponibles dans la boîte à outils de Vision du web.
D'autres pages du wiki peuvent correspondre à vos attentes. La liste de toutes les pages du wiki.

VALORISER LE WIKI

Valoriser le contenu partagé sur le wiki avec un don en monnaie numérique :
AEON - Bitcoins - Bitcoins Cash - Bitcoins Gold - Bitcore - Blackcoins - Basic Attention Token - Bytecoins - Clams - Dash - Monero - Dogecoins - Ğ1 - Ethereum - Ethereum Classique - Litecoins - Potcoins - Solarcoins - Zcash

OBTENIR DE LA MONNAIE NUMERIQUE

Obtenir gratuitement de la monnaie numérique :
Gagner des Altcoins - Miner des Altcoins.
Consulter le miroir du wiki depuis Planet Hoster : Le miroir du wiki version du 12 Juillet 2019.