23 février 2024

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.

git

Installation

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.

Suivi du projet

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

GitHub

GitHub

Ouvrir un compte sur GitHub

Sécurité GitHub

Créer un jeton d’accès personnel :

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

Sauvegarder le jeton ! Il sera demandé à la première tentative de pousser des modifications sur GitHub.

Nom de la branche principale

La branche principale s’appelle historiquement master mais récemment main par défaut.

Choisir :

  • Paramètres du compte utilisateur ;
  • Repositories : Repository default branch ;

La branche s’appelle “master” dans toute cette présentation.

Dans le terminal de RStudio:

git config --global init.defaultBranch master

Créer un projet

A partir de rien :

  • Dans GitHub :

    • New Repository
    • Choisir le nom (pas de caractères spéciaux)
    • Ne rien ajouter : le projet doit être vide.
  • 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 branch -M master
git push -u origin master

Pratique

Opérations élémentaires : synchroniser

A chaque nouvelle séance de travail :

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

Pendant la séance de travail, après chaque tâche élementaire :

  • Livrer (Commit) les modifications.

A la fin de chaque nouvelle séance de travail :

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

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.

TP : Modifier le projet

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.