École thématique SIGR2021 - 29/06/2021

Git, GitHub, GitLab

Git est un système de gestion de version distribué pour

  • tracker les changement dans les fichiers texte
  • gérer l’historique du code source
  • partager le code avec des dépots distants

GitHub et GitLab hébèrgent des dépots distants + des services pour gérer des projets (issue tracking, collaboration, hébergement web, CI/CD).

GitLab sur Huma-num

Objectif de l’atelier

Configurer Git et GitHub pour partager une présentation et son code source.

Les étapes

  1. Créer un compte GitHub
  2. Installer Git sur sa machine
  3. Configurer Git sur sa machine
  4. Connecter sa machine à son compte GitHub
  5. Créer un repo Git
  6. Mettre à jour son repo Git
  7. Diffuser sa présentation au format html via GitHub

Créer un compte GitHub

Créer un compte GitHub

Installer Git sur sa machine

Ouvrir le terminal dans RStudio

Installer Git sur sa machine

Dans le terminal :

which git
git --version
## /usr/bin/git
## git version 2.20.1

Si ça marche, Git est déjà installer. Sinon…

Installer Git sur sa machine

Installer Git sur sa machine

Dans le terminal :

git config --global user.name 'username-de-github'
git config --global user.email 'email-de-github@cnrs.com'
git config --global --list

Connecter votre machine et GitHub

Il existe 2 méthodes pour faire le lien entre votre machine et GitHub :

  • Un système de jetons (token) pour utiliser le HTTPS
  • Un système de clefs SSH pour se connecter… en SSH

Avez vous déjà une paire de clefs SSH

Dans le terminal :

ls -al ~/.ssh/
## total 40
## drwx------  2 tim tim 4096 févr. 20 19:00 .
## drwxr-xr-x 50 tim tim 4096 juin  25 14:14 ..
## -rw-------  1 tim tim 1679 juin  26  2019 id_rsa
## -rw-r--r--  1 tim tim  405 janv. 24  2018 id_rsa.pub
## -rw-------  1 tim tim 9528 mai    7 11:58 known_hosts
## -rw-------  1 tim tim 8640 janv.  6 14:14 known_hosts.old

Si vous voyez une paire de fichier id_rsa / id_rsa.pub, vous avez déjà une paire de clefs SSH. Vous pouvez passer les étapes de génération de clefs.

Générer une paire de clefs SSH

Dans le terminal :

ssh-keygen -t rsa -b 4096 -C "timothee.giraud@cnrz.com"

Générer une paire de clefs SSH

Vous pouvez ajouter une passphrase ou non.

2 fichiers sont créés:

  • une clef privée (~/.ssh/id_rsa)
  • une clef publique (~/.ssh/id_rsa.pub)

Générer une paire de clefs SSH

La clef publique (~/.ssh/id_rsa.pub) devra être indiquée dans les paramètres de votre compte GitHub.

La clef privée devra être connue de votre OS (avec ssh-agent).

Ajouter la clef publique sur GitHub

Ajouter la clef publique sur GitHub

Ajouter la clef publique sur GitHub


Copier ici le contenu du fichier ~/.ssh/id_rsa.pub

Ajouter la clef privée à votre ssh-agent

Dans le terminal, vérifier que ssh-agent est activé :

eval "$(ssh-agent -s)"
## Agent pid 21011

Ajouter la clef privée (linux/windows) :

ssh-add ~/.ssh/id_rsa

Ajouter la clef privée (Mac OS) :
L’opération est un peu plus compliquée, suivre les instructions suivantes https://happygitwithr.com/ssh-keys.html#mac-os

Vérifier l’installation

Dans le terminal

ssh -T git@github.com

Créer un repo git

Plusieurs workflows sont possibles pour paramétrer un projet Git/GitHub/Rstudio :

  • Un nouveau projet, en commençant par GitHub
  • Un projet existant, en commençant par GitHub
  • Un projet existant, en finissant par GitHub

Créer un dépôt sur GitHub

Créer un dépôt sur GitHub

Créer un dépôt sur GitHub

Créer un dépôt sur GitHub

Copier l’adresse ssh du dépôt.

Cloner le dépôt sur sa machine

Dans le terminal :

git clone git@github.com:rCarto/mon_projet.git

Créer un projet

Dans RStudio :

Créer un projet

Créer un projet

Indiquer le dossier que l’on vient de cloner.

Créer un projet

Créer une nouvelle présentation


Créer une nouvelle présentation

Enregistrer et tricoter la présentation sous le nom index.Rmd.

Commiter ses changements

À faire à chaque fois que l’on a fini une étape significative de travail, surement plusieurs fois par jour.

Commiter c’est enregistrer localement (sur sa machine) ses changements pour Git.

Commiter ses changements

  • Cliquer sur l’onglet Git.
  • Cocher la boite “Staged” devant tous les fichiers dont on veut enregistrer l’existense ou le changement.
  • Cliquer sur “Commit

Commiter ses changements

Indiquer un message pour le commit, puis cliquer sur “Commit”.

Commiter ses changements

Pousser ses modifications

À faire quelques fois par jour, moins souvent que les commits.

Pousser ses modifications (Push) c’est envoyer ses modifications sur le dépôt distant sur GitHub.

Pousser ses modifications

Attention, il faut d’abord Tirer (Pull) depuis GitHub. Cela permet de prendre en compte les modifications faites sur le dépôt par une autre machine ou par un collègue. Cela permet de s’assurer que l’on est à jour avec le dépôt distant.

Pousser ses modifications

Pousser ses modifications



Vérifier les changements sur GitHub

Et en ligne de commande ?

Mettre en ligne (servir) la présentation

Les GitHub Pages permettent de mettre en ligne des fichiers html/css/javascript.

Dans les settings du dépôt sur GitHub =>

Mettre en ligne (servir) la présentation

Mettre en ligne (servir) la présentation

Après quelques instants la présentation sera accessible en ligne à l’adresse indiquée!
Elle sera automatiquement mise à jour à chaque fois que le dépôt est mis à jour (Push).

Mettre en ligne (servir) la présentation

Ressources

À vous !