22
2SLAM - PPE Un outil de gestion de versions GIT Sources : - Introduction aux systèmes de gestion de versions - DevelopR6 - Florent Langrognet - Gérez vos codes sources avec Git - OpenClassrooms - Mathieu Nebra - Site officiel de Git : http://git-scm.com/

Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

  • Upload
    dolien

  • View
    216

  • Download
    2

Embed Size (px)

Citation preview

Page 1: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2SLAM - PPEUn outil de gestion de

versionsGIT

Sources : - Introduction aux systèmes de gestion de versions - DevelopR6 - Florent Langrognet- Gérez vos codes sources avec Git - OpenClassrooms - Mathieu Nebra- Site officiel de Git : http://git-scm.com/

Page 2: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 2 / 22

Un outil de gestion de versions

I. Principes d'un Système de Gestion de Versions

II. Catégories de S.G.V.

III. Présentation de Git

IV. Utilisation en PPE

Page 3: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 3 / 22

Principes d'un SGV

Travailler à plusieurs sur un projet logiciel

Page 4: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 4 / 22

Principes d'un SGV

Conserver l'historique des modificationsPouvoir revenir en arrière

Savoir qui a effectué une modification

Comparer deux versions

Page 5: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 5 / 22

Principes d'un SGV

Faire évoluer plusieurs versions en parallèle (« branches »)

Identifier une version aboutie (« tag »)

Page 6: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 6 / 22

Principes d'un SGV

Notion de dépôt

Dépôt

Copies locales

Page 7: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 7 / 22

ScénarioBob et Alice travaillent sur le même projet ; ils téléchargent la même version depuis le dépôt

Quelle est la version commune ?V0V0 V1 AliceV1 Bob V1 AliceV1 Bob

V0 V1 Bob V1 Alice

 ?

Bob Alice

Principes d'un SGV

Page 8: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 8 / 22

Principes d'un SGVSolution

V2V1 BobV2

V1 Bob

On fusionne : V1 Bob + V1 Alice = V2

V1 AliceV1 Bob

V1 Alice

 ?

NON

V2

V1 Bob

V2

V2

V2

Page 9: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 9 / 22

Principes d'un SGV

SynthèseUn SGV gère le mécanisme de lecture-fusion-

écriture

La fusion automatique est possible siil s’agit d’un fichier texte

les modifications sont assez éloignées les unes de autres

Autres fonctions

l’historique

les branches

Les tags, ...

Page 10: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 10 / 22

Catégories de SGV

Systèmes centralisés (CVS, Subversion, ...)

Principe : un seul dépôt, sur un serveur central

Avantages : sécurité, technologie répandue

Inconvénients : dépendance/dépôt, performance si gros projet

Page 11: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 11 / 22

Catégories de SGV

Systèmes décentralisés (Git, Mercurial, ...)

Principe : chaque contributeur a son propre dépôt

Avantages :Possibilité de travailler de façon indépendante (hors connexion)

Les dépôts peuvent communiquer deux à deux (lecture/écriture/fusion) Travailler avec un dépôt central reste possible

Inconvénient : gestion plus complexe (beaucoup de possibilités) => appliquer des principes rigoureux

Page 12: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 12 / 22

Catégories de SGV

Critères de choix

Méthodologie du projet

Outils disponibles (intégration aux IDE)

Compatibilité avec des « forges »

Portabilité (multi-O.S.)

Documentation

...

Page 13: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 13 / 22

Présentation de Git

SGV décentralisé

Historique :

d'abord un SGF (créé par Linus Torvalds), puis un SGV

associé à LinuxBasé sur les différences entre fichiers (algo. SHA-1)

Protocole d'échange spécifique (git) ou bien https, ssh, …

Compression des fichiers « zlib »

Page 14: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 14 / 22

Utilisation de GitEn mode commande

Sous linux, paquetage Git git-core et gitk pour avoir une interface graphique

Commandes :gitcloneurl, gitpull, git add file, git rm file, git mv file, git status, git commit -a, git diff, gitapply, gitbranch, gitcheckout, ...

Intégré à un I.D.E.

Page 15: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 15 / 22

Utilisation de GitUtilisation en PPE

Commandes et interface graphique intégrés à NetBeans 

Choix de Git-hub.com comme dépôt central

Gratuit pour les dépôts publics : accès libre en lecture, réservé aux collaborateurs en écriture

Savoir utiliser git-hub

Savoir utiliser NetBeans + Git

Page 16: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 16 / 22

Le dépôt centralGit-hub.com

Créer un compte pour chaque collaborateur (adresse mail valide)

Créer une « organisation » pour l'équipe du projet ex : 2slamppe-prj1-eq7 et y inscrire les collaborateurs

Créer un dépôt pour cette organisation

créer un dépôt (new repository)

Ajouter des collaborateurs (settings - add)

Page 17: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 17 / 22

Le dépôt localNetBeans

initialiser un dépôt local pour un projet (initialize git repository)

Conserver le répertoire par défaut

Exécuter une première écriture (commit) ; attention, le message est important pour repérer les versions

Page 18: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 18 / 22

Le dépôt localMettre à jour le dépôt distant

Une branche principale (master) est alors créée (dépôt local)

2- puis, il faut importerTeam/Remote/Push (s'authentifier comme l'un des collaborateurs)

Pour importer sur le dépôt central depuis le dépôt local :

1- il faut tout d'abord fusionner les deux (sauf la première fois, si le dépôt distant est vide) :Team/Remote/Pull (connexion anonyme) https://github.com/2slamppe-prj1-eq7/demogit.git/

Si cette étape est négligée, l'écriture (push) échouera

Page 19: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 19 / 22

Le dépôt localDupliquer le dépôt distant sur un site local

C'est un « clonage »Team/Git/Clone (connexion anonyme) https://github.com/2slamppe-eq7/demogit.git/

Créer un projet NetBeans d'après la copie

Le nouveau dépôt local peut alors évoluer.

Rappels : dépôt local : marquer les changements en exécutant un « commit » dépôt distant : avant de valider les changements (« push »), il faut

fusionner (« pull »)

Page 20: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 20 / 22

Fusion des dépôtsGestion des conflitsLors de la récupération des modifications du dépôt central (« pull »), celui-ci est fusionné avec le dépôt local. Des conflits peuvent apparaître en cas de modification des mêmes zones du même fichier …=> Il faut arbitrer en choisissant, puis valider les modifications localement (« commit »)  et retenter le « pull »

Page 21: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 21 / 22

Le dépôt :branches et « tags »

Utilisation des branches et des tags

Il y a au moins une branche : « master »

Une branche = une version (majeure ou mineure ex : 2.1)

Une branche est une évolution séparée du projet

Une branche peut être fusionnée avec une autre (« merge »)

Pour changer de branche : « checkout »

Chaque version de maintenance (ex: 2.1.1, 2.1.2) sera taguée= marquée pour l'identifier facilement

Page 22: Un outil de gestion de versions GIT et interface graphique intégrés à NetBeans Choix de Git-hub.com comme dépôt central Gratuit pour les dépôts publics : accès libre en lecture,

2014/2015 2SLAM - PPE – Gestion de versions 22 / 22

Travail collaboratifQuand valider

Un commit après chaque test unitaire correctcommenter le commit

Une fusion avec le dépôt distant (pull/push) une fois par jour au maximum

attention, un « push » est irréversible