20 décembre 2021

Principes

git

git est un gestionaire de sources :

  • Suivi des modifications : bien plus qu’une sauvegarde !
  • Possibilité de revenir en arrière ;
  • Plusieurs versions concurrentes : branches.

GitHub

GitHub est une plateforme pour la collaboration basée sur Git.

  • Possibilité de développer à plusieurs : la fin des pièces jointes !
  • Présentation des résultats : pages GitHub ;
  • Intégration continue: GitHub Actions.

Mise en place

git

RStudio doit détecter Git

Sinon, l’installer.

GitHub

Ouvrir un compte sur GitHub

Sécurité GitHub

Créer un jeton GitHub:

  • Paramètres du compte utilisateur ;
  • Developer Settings > Personal Access Tokens ;
  • Générer un jeton, le décrire en tant que “git-RStudio” et lui donner l’autorisation “repo”.

Sauvegarder le jeton !

Créer un projet

A partir de rien :

  • Dans GitHub :

    • New Repository
    • Choisir le nom (pas de caractères spéciaux)
    • Ajouter un .gitgnore approprié.
  • Copier l’URL à partir de Clone or Download

  • Dans RStudio : nouveau projet à partir de Git, coller l’URL.

Créer un projet

A partir d’un projet RStudio existant :

  • Passer le projet sous contrôle de version :

    • Tools /Version Control /Project Setup…

    • Sélectionner Git.

  • Créer un dépôt sur GitHub, récupérer son URL : https://github.com/MonCompte/MonDepot.git

  • Dans le Terminal de RStudio, exécuter :

git remote add origin https://github.com/MonCompte/MonDepot.git
git push -u origin master

Opérations élémentaires : filtrage

Les fichiers modifiés sont dans la fenêtre Git de RStudio.

Utiliser .gitignore pour masquer les fichiers non suivis.

Opérations élémentaires : commit

  • Créer un fichier R avec une ligne de code et l’enregistrer.

Après chaque séance de travail, livrer le résultat (Commit)

Sélectionner les fichiers à livrer.

Saisir un message clair : résumé sur la première ligne.

Opérations élémentaires : synchroniser

Pousser (Push) ses modifications vers GitHub pour les rendre publiques.

Tirer (Pull) pour résupérer les modifications sur GitHub.

Opérations élémentaires : collaborer

Déclarer un collaborateur.

Travailler à deux ou plus sur le même fichier.

Contenu d’une séance de travail :

  • Tirer ;

  • Modifier ;

  • Livrer ;

  • Pousser.

Conflits

L’information élémentaire est la ligne.

Modifications contradictoires = conflit.

Minimiser les conflits : dans un texte, une phrase = une ligne.

En cas de conflit, trancher.

Suivi du projet

Icône en forme d’horloge dans la fenêtre Git

Pratique

Modifier le projet Cours-R-Introduction

Ajouter un fichier README.md

Prendre en compte, valider et pousser.

Générer un conflit

Editer la même ligne de README.md :

  • en ligne sur GitHub ;
  • localement.

Tirer, constater le conflit, le résoudre.

Collaborer avec son voisin

Le voisin de gauche invite celui de droite sur GitHub.

Les deux modifient le projet.

  • Bien penser à tirer avant de modifier.
  • Pousser rapidement pour limiter les conflits.

Branches

Intérêt

Modifier le projet sans perturber son état stable.

Application :

  • développer une nouvelle fonctionnalité ;
  • la tester, corriger les bugs ;
  • la rendre visible quand elle est terminée.

Créer une branche

Cliquer sur New Branch

Travailler dans la nouvelle branche (pull, commit, push).

Fusionner

Se placer dans la branche master.

Exécuter:

git merge branche_a_fusionner

Fork et Pull Request

Fork

Objectif : modifier le dépôt d’un autre

Fourcher: création d’une copie du dépôt

Commencer une nouvelle branche, la modifier.

Pull Request

Demande d’intégration de la branche: Pull Request.

Sur GitHub.

Dialogue possible.

Si acceptation, fusion de la branche et suppression.