B.2 GitHub

Un réseau social a été conçu autour de Git pour sauvegarder vos projets sur le “cloud”, les partager et collaborer avec d’autres personnes. Ce système se nomme GitHub (tout comme Facebook ou LinkedIn). GitHub rassemble donc “Git”, la gestion de version et “Hub” relatif au réseau. D’autres réseaux équivalents existent comme Gitlab ou Bitbucket.

B.2.1 Votre activité et profil

Pour vous montrer différentes sections sur GitHub, nous utiliserons le compte de GuyliannEngels. Une fois connecter sur Github, nous nous trouvons sur une page qui nous montre notre activité sur ce réseau. A droite de la page, nous pouvons observer les derniers dépôts (On parle de Repositories dans GitHub) sur lequels vous avez travaillé et au centre votre activité récente.

Nous pouvons également visiter notre profil. A droite, il y a une photo et une petite présentation vous concernant tout comme vous le retrouvez sur tout réseau social, au centre vos projets récents (Popular repositories) et vos contributions générale sur ce réseau social. Les contributions sur le réseau est très important. Il indique de manière globale votre travail ou plutot votre apport sur vos différents projets.

Dans notre exemple, nous pouvons observer 983 contributions sur l’année écoulée.

B.2.2 Vos projets

Sur GitHub, vous pouvez héberger vos projets (qui se nomment sur GitHub repositories). Notre exemple se base sur le projet sdd-umons, que vous pouvez librement consulter. Il s’agit en effet d’un dépôt public. Vous avez la possibilité d’avoir des projets publics ou privés.

Les projets publics sont visibles par tous. La collaboration est le point central de GitHub. Un dépôt public peut être vu par tous. Il peuvent y apporter des modifications et puis vous soumettre les modifications. Nous reviendrons plus tard sur ces apports par la communauté.

Pour des projets plus sensibles, vous avez la possiblité d’avoir des projets privés. Pour collaborer sur des projets privées vous serez amené à prendre un compte payant. Dans le cadre de notre cours, nous resterons toujours sur un compte gratuit.

Un dépôt sur GitHub est proposé de la manière suivante. Vous pouvez observer le nom du dépot et la personne ou l’organisation qui travaille sur ce projet (BioDataScience-Course/sdd-umons). Dans notre cas, tous les projets relatifs au cours de sciences des données biologiques sont hébergés sur BioDataScience-Course(Il en sera de même pour tous les travaux que vous réaliserez dans le cadre des cours). Sous le nom du dépôt, vous pouvez observer, le dépots sur lequel ce projet s’inspire (phgrosjean/bookdown-test).

Vous pouvez observer une première barre d’outils comprenant les sections Code, Issues, Pull requests, Projects, Security, Insights et Settings (toutes les sections ne seront pas détaillées dans cet ouvrage).

B.2.2.1 Code

Dans cette section, vous pouvez observer une nouvelle barre d’outils qui comprend les sections suivantes : commits, branches, releases, environment, contributors et View license.

Nous pouvons observer pas moins de 270 commits (Rappelez vous qu’un état d’avancement d’un projet est un commit).

B.2.2.2 Issues

Cette section est prévue afin de discuter, de réfléchir et de collaborer sur un projet commun.

B.2.2.3 Insights

La section Insights nous renseigne sur l’activité de notre projet. On peut y voir par exemple les contributeurs (Contributors) du projet. Nous avons donc 4 personnes qui ont contribué sur cet ouvrage.

Les informations fournies dans cette section sont employées dans le cadre des corrections des travaux de groupes.

B.2.3 Débuter un dépôt

Lorsque nous souhaitons débuter un nouveau projet qui sera déposé sur Github, nous devons l’initialiser sur GitHub.

Pour créer un nouveau dépôt (Create a new repository), nous devons fournir les informations suivantes :

  • Repository template

Nous devons décider d’utiliser ou non un template existant parmi la liste des templates que nous avons.

  • Owner

Nous devons decider du responsable du dépôt soit une organisation ou un responsable.

  • Repository name

Nous devons définir un nom pertinent pour notre projet.

  • Description

Nous pouvons proposer une courte description de notre dépôt.

  • Public ou Private

Nous devons décider si notre projet est public ou privé.

  • README

Nous pouvons éditer un fichier de présentation qui se nomme le README. Ce dernier est un fichier qui va présenter succinctement notre projet. On peut l’éditer depuis GitHub directement.

  • .gitignore

Il est intéressant de configurer le dépôt avec un fichier .gitignore orienté sur l’utilisation de R. GitHub peut en effet héberger des projets avec des languages très variés.

  • license

Nous pouvons adjoindre à notre projet une licence. Il en existe plusieurs afin d’expliquer précisement ce que l’on a le droit de faire ou non avec votre dépôt.

Le site https://choosealicense.com peut vous aider à définir votre licence.

Une fois votre dépôt configuré, il ne vous reste plus qu’à le cloner comme expliqué dans la section B.2.4.

B.2.4 Cloner un dépot existant

Lorsque nous souhaitons travailler sur un de nos projets, il faut commencer par le cloner pour avoir une copie en local de ce dernier.

B.2.4.1 Via RStudio

Pour commencer, vous devez copier le lien menant à votre dépôt sur GitHub. Il vous suffit de cliquer sur Clone or downloadet de copier l’url proposée (vous avez d’ailleurs un bouton à cet effet).

Ensuite, vous devez vous rendre dans RStudio et sélectionner l’onglet Project, suivi de New Project... (Si les projets restent encore un peu flous pour vous, rendez vous dans la section @ref(#rs-projet)). Une nouvelle fenêtre s’ouvre . Vous devez sélectionner Version Control, puis Git.

Pour finir, vous devez renseigner l’url précédemment copiée depuis GitHub, chosir un nom à votre dépôt (Laissez le nom par défaut est une bonne pratique), choisir un dossier pour cloner votre dépot (le dossier projects, du dossier shared est dédié à cela) et créer une copie en local de votre projet en cliquant sur Create Project.

Vous êtes enfin prêt à éditer votre projet. N’oubliez pas de réaliser des Commit, des Pull et des Push.

B.2.4.2 Via GitHub Desktop

Github Desktop est un programme mis au point afin de faciliter l’utilisation de GitHub. Cloner un dépôt avec GitHub desktop est d’une simplicité déconcertante.

Depuis Github, sélectionnez Clone or download puis Open in Desktop et enfin acceptez l’ouverture de Github deskop.

Dans GitHub Desktop, une fenêtre de configuration s’ouvre, il suffit de sélectionner le dossier où l’on souhaite placer le dépôt et cloner le dépôt.


Cette fonction n'est disponible que sur la version Mac et Windows de GitHub Desktop

B.2.5 Déposer un projet débuté

Nous avons débuté un projet sur RStudio configuré avec le gestionnaire de version comme présenté dans l’annexe B.1.1.1. Cependant, après avoir progressé dans ce projet (et réalisé plusieurs Commit), vous souhaitez le partager sur GitHub. Rassurez-vous, il ne faut pas tout recommencer. Il aurait cependant été plus simple de réflechir dès le début du projet à cette éventuallité, néanmoins voici une solution à ce problème.

Une bonne pratique avant de vous lancer dans un nouveau projet et de se poser et de réfléchir aux objectifs du projets et aux moyens à mettre en oeuvre pour atteindre ces objectifs.

B.2.5.1 Via RStudio

Nous partons d’un projet RStudio d’exemple qui se nomme repos-example. Comme vous pouvez le voir, ce projet comprend 3 Commit mais nous ne pouvons ni faire des Pull et des Push. C’est tout à fait normal vu que nous ne sommes pas lié avec GitHub.

Pour déposer un projet RStudio existant sur GitHub, vous devez débuter par créer un nouveau dépôt dans Github qui ressemble très fortement à l’annexe B.2.3. Avec une particularité que vous ne devez pas configuré le README, le .gitignore et la license. Vous pouvez vous appercevoir que le dépot est vide et qu’il vous est proposé différentes solutions dont …or push an existing repository from the command line . Il s’agit donc de mettre en ligne (Push) un projet exsitant.

Dans votre projet RStudio, sélectionnez l’onglet Tools puis Shell.... Un onglet terminal vient de s’ouvrir à côte de l’onglet de la console. Il vous suffit ensuite d’y copier les 3 instructions proposer sur GitHub et de taper sur la touche enter et le tour est joué

Afin de vérifier que votre projet RStudio est correctement mis en ligne sur GitHub, vous pouvez recharger votre page sur GitHub.

B.2.5.2 Via GitHub Desktop

Nous partons d’un projet RStudio d’exemple qui se nomme repos-example2 similaire au projet présenté précédement.

Dans GitHub Desktop, vous devez sélectionner File, puis Add Local Repository.... Vous devez commencer par sélectionner le dossier de votre projet, puis de publier votre dépôt (publish repository). C’est à nouveau un programme très simple d’utilisation.

B.2.6 Copier un dépôt

Lorsque que vous souhaitez apporter votre aide sur un projet qui n’est pas le votre. Vous devez réaliser un Fork de ce travail puis un Clone.

N’oubliez pas que la base de GitHub est de faciliter la collaboration. Afin de soumettre vos modifications à un projet. Il faut réaliser un Pull requests. Cette étape permet de proposer vos modifications au responsable du projet. Ce dernier pourra accepter ou refuser vos modifications. Il s’agit souvent d’un espace de discussions entre le responsable et le collaborateur volontaire.