Bienvenue dans le gitlab LETG !

Vous trouverez ici quelques réponses à vos questions. N’hésitez pas modifier ce document pour y ajouter d’autres questions ou réponses, et à l’améliorer !

Gitlab, Github… Quelle différence et à quoi ça sert ?

Au commencement, il y avait git, un outil libre de gestion de versions. En gros, ce logiciel permet de sauvegarder différents “états” d’un projet, et donc de revenir en arrière, voire de faire des trucs plus compliqués comme avoir 2 branches pour un projet, une stable et une en développement par exemple, puis fusionner les 2 branches…

C’est un outil destiné au développeurs, et donc adapté pour du code informatique : pour profiter de toutes les possibilités de git, il faut travailler sur des fichiers texte.

Vous pouvez tout à fait installer git sur votre ordinateur, et vous en servir en ligne de commande ou via une interface graphique, sans utiliser Gitlab ou Github.

Mais alors, à quoi servent Gitlab et Github, vous demandez-vous ?

Il s’agit en fait de sites web qui vont faciliter le travail collaboratif sur des projets, en utilisant git. On rajoute une étape de complexité : en utilisant un de ces sites, vous aurez une version “en ligne” de votre projet. Chacun possède sur son ordinateur une copie de la version en ligne, qu’il va pouvoir modifier, pour ensuite renvoyer ces modifications vers la version en ligne. Chacun pourra également récupérer les modifications envoyées par les autres.

Et en cas de conflit, si 2 utilisateurs envoient des modifications en même temps vers la version en ligne ? S’il s’agit de modifications sur 2 fichiers différents, pas de problème, toutes les modifs seront intégrées. S’il s’agit de modifications sur un même fichier, il faudra choisir ligne par ligne lesquelles garder.

Comme avec git, vous pourrez voir l’historique des modifications et revenir en arrière si nécessaire.

Et maintenant vous vous demandez peut-être quelle est la différence entre ces différents sites ?

github.com est un site commercial, basé sur git, appartenant à Microsoft.

GitLab est un logiciel libre basé sur git. Son instance la plus connue est gitlab.com, maintenue par la même compagnie qui développe le logiciel GitLab. Mais GitLab étant un logiciel libre, d’autres organismes gèrent des instances gitlab, comme l’infrastructure de recherche du CNRS Huma-Num (https://gitlab.huma-num.fr/), ou l’IRD (https://forge.ird.fr/explore)…

À LETG, nous avons choisi d’utiliser l’instance GitLab de l’IN2P3, l’Institut national de physique nucléaire et de physique des particules du CNRS. Il s’agit donc d’un site institutionnel.

Tous ces sites ne sont pas liés : il faut un compte différent par site. Par exemple, si vous avez un compte sur github.com, il vous faudra un autre compte pour utiliser gitlab.com. Et pour le gitlab IN2P3 ? Pas besoin de vous créer un compte, vous pourrez utiliser vos identifiants institutionnels. C’est détaillé juste en-dessous !

Comment se créer un compte ?

2 possibilités, suivant si vous disposez d’une adresse mail institutionnelle ou non !

Vous avez une adresse mail institutionnelle

Si vous avez une adresse mail “officielle” (CNRS, d’une université, IRD…), pas besoin de vous créer un compte !

Rendez-vous sur la page d’accueil du gitlab IN2P3.

Cliquez ensuite sur le bouton CC IN2P3 Single Sign On :

bouton CC IN2P3 Single Sign On

Ensuite, cliquez sur le bouton EUGAIN à droite :

bouton EDUGAIN

Il ne vous reste plus qu’à choisir votre organisme dans la liste déroulante et à rentrer vos identifiants !

Vous n’avez pas d’adresse mail institutionnelle

Il est également possible d’obtenir un accès “non institutionnel” en faisant la demande auprès de l’équipe du gitlab IN2P3. Nous contacter pour cela, en nous précisant la date de fin du projet ! Nous ouvrirons un ticket auprès du support technique pour que votre compte soit validé.

Vous arrivez en fin de thèse ou de contrat et vous n’aurez donc plus d’identifiants institutionnels ? Il est possible de prolonger l’accès au gitlab avec une adresse email personnelle. Cependant, la meilleure solution pour continuer à alimenter vos dépôts est peut-être de les copier dans une autre plate-forme utilisant git, d’accès public, comme gitlab ou [github](https://github.com/.

Comment accéder au groupe LETG ?

Une fois identifié, rendez-vous sur https://gitlab.in2p3.fr/letg et cliquez sur Request Access. Un modérateur du groupe devra ensuite valider votre demande.

Pourquoi et comment associer une clé SSH à votre compte ?

Associer un clé SSH vous permettra de vous authentifier auprès de gitlab, ce qui vous sera utile par exemple pour modifier un projet en y poussant des modifications depuis votre ordinateur.

Vous pouvez suivre ce guide pour savoir comment vérifier si vous avez déjà une clé SSH et comment en générer une si ça n’est pas le cas.

Une fois que vous avez une clé SSH sur votre ordinateur, vous pouvez l’ajouter dans votre compte gitlab IN2P3. Sur votre ordinateur, ouvrez le fichier texte de la clé publique (id_rsa.pub) et copiez son contenu. Dans l’interface gitlab, rendez-vous dans vos préférences en cliquant sur votre avatar en haut à droite → SSH Keys, et collez le contenu de votre clé publique.

Donnez-lui éventuellement un nom (chaque clé est propre à une machine, si vous voulez utiliser un autre ordinateur il vous faudra refaire cette manip), et laissez la date d’expiration vide.

Comment créer un nouveau projet ?

2 possibilités :

  1. Vous voulez créer un projet vide
  2. Vous avez déjà sur votre ordinateur un projet existant, avec du code, du texte… et vous voulez en faire un projet gitlab

Un projet peut être “personnel”, c’est-à-dire uniquement rattaché à votre compte, ou bien associé au groupe LETG. Vous pouvez faire ce choix dans la liste déroulante associé à l’URL du projet une fois sur la page de création d’un nouveau projet.

Il est également possible de créer des sous-groupes au sein du groupe LETG, il existe par exemple le sous-groupe RASTeR.

Créer un projet vide

  • Dans la barre de menu en haut, juste à gauche de la barre de recherche, cliquez sur le bouton + et choisissez New project > Create blank project. Dans l’url de ce projet, choisissez LETG s’il s’agit d’un projet “UMR” (normalement la majorité des cas !)
  • copiez l’adresse du nouveau dépôt : bouton *Clone > Clone with SSH”, par ex. :letg/bac-a-sable.git
  • dans un terminal, naviguer jusqu’à l’endroit où vous souhaitez créer le dossier du dépôt, et tapez git clone git@gitlab.in2p3.fr:letg/bac-a-sable.git par exemple
  • ajoutez ce que vous voulez dans le dossier
  • git add .
  • git commit -m "first commit"
  • git push

Transformer un dossier déjà existant en dépôt gitlab

  • Dans la barre de menu en haut, juste à gauche de la barre de recherche, cliquez sur le bouton + et choisissez New project > Create blank project. Dans l’url de ce projet, choisissez LETG s’il s’agit d’un projet “UMR” (normalement la majorité des cas !)
  • dans un terminal, naviguez jusqu’au dossier, puis tapez git init
  • copiez l’adresse du nouveau dépôt : bouton *Clone > Clone with SSH”, par ex. :letg/bac-a-sable.git
  • pour utiliser une clé SSH pour s’authentifier : git remote add origin git@gitlab.in2p3.fr:letg/bac-a-sable.git
  • git add .
  • git commit -m "first commit"
  • git push

Comment contribuer à un projet existant ?

Demander l’accès si le projet n’est pas public !

Comment importer un projet déjà existant sur une autre plate-forme git ?

Comment rendre une page HTML accessible en ligne ?

La page que vous êtes en train de lire en est un exemple, elle est créée à partir de ce fichier Rmarkdown