SlideShare une entreprise Scribd logo
1  sur  68
Télécharger pour lire hors ligne
Git & Rstudio
Versionner son code et travailler de manière
collaborative
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    1 / 68
Data Scientist, R expert.
https://rtask.thinkr.fr
https://github.com/ThinkR-open
https://twitter.com/thinkr_fr
Vincent Guyader
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    2 / 68Git & Rstudio
git c'est quoi ?
git est un logiciel que vous
allez installer sur votre
ordinateur, sur ceux de
vos collaborateurs et sur
un serveur distant.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    3 / 68Git & Rstudio
Git à quoi ca sert ?
git va vous aider à suivre
les modifications que vous
allez faire sur un projet.
(seul ou à plusieurs)
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    4 / 68Git & Rstudio
Git ca ressemble à quoi ?
git est un outil en ligne de
commande adoré par les
développeurs de tous
bords. MAIS on peut
(quasiment) se passer de la
ligne de commande en
passant par des interfaces
graphiques bien pensées.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    5 / 68Git & Rstudio
Git ca ressemble à quoi ?
Rstudio intègre git
nativement et le rend
facilement accessible.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    6 / 68Git & Rstudio
Git ca vient d'où ?
Concu par linus torvald (le papa du noyau
linux) à partir de 2005.
quand on lui a demandé
pourquoi il avait appelé son
logiciel “git”, qui est à peu près
l'équivalent de “connard” en
argot britannique, Linus
Torvalds a répondu “je ne suis
qu'un sale égocentrique, donc
j'appelle tous mes projets d'après
ma propre personne. D'abord
Linux, puis Git.”
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    7 / 68Git & Rstudio
(1/5) Raconter l'histoire de votre projetGit est utilisé pour faire
des snapshots de l'état
des fichiers d'un dossier
que vous souhaitez
surveiller
Ce dossier est appelé
repository
A chaque fois que vous
souhaitez figer l'état du
repository vous faites
un commit
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    8 / 68Git & Rstudio
(1/5) Raconter l'histoire de votre projet
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    9 / 68Git & Rstudio
(1/5) Raconter l'histoire de votre projet
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    10 / 68Git & Rstudio
(1/5) Raconter l'histoire de votre projet
Chaque commit fige un
certain nombre
d'informations :
qui a fait la
modification ?
quand la modification
a été réalisée ?
pourquoi la
modification a été
réalisée (via un
message de commit) ?
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    11 / 68Git & Rstudio
(1/5) Raconter l'histoire de votre projet
Git consigne l'histoire de votre projet :
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    12 / 68Git & Rstudio
(1/5) Raconter l'histoire de votre projet
repository : le dossier
que vous voulez surveiller
commit : un instant figé
dans la vie de votre projet
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    13 / 68Git & Rstudio
(2/5) Voyager dans le temps
Git peut vous servir de
machine à voyager dans le
temps.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    14 / 68Git & Rstudio
(2/5) Voyager dans le temps
A chaque commit on associe un hash, une succession de caractères aléatoires et
unique.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    15 / 68Git & Rstudio
(2/5) Voyager dans le temps
On peut faire référence a
ce hash pour effectuer un
checkout est revenir à
l'état de ce commit.
Cela modifie le
repository mais n'efface
aucunement les autres
commit.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    16 / 68Git & Rstudio
(2/5) Voyager dans le temps
hash : un identifiant
unique
checkout : un saut dans le
temps vers un commit
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    17 / 68Git & Rstudio
(3/5) Faire des essais/erreurs
La vie d'un projet n'est pas
un long fleuve tranquile,
on prend parfois des
détours, on tombe sur des
culs de sac et on fait demi
tour.
Git rend facile le fait de
pouvoir faire des choses
"juste pour voir".
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    18 / 68Git & Rstudio
(3/5) Faire des essais/erreurs
Pour cela on va utiliser des
branches
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    19 / 68Git & Rstudio
(3/5) Faire des essais/erreurs
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    20 / 68Git & Rstudio
(3/5) Faire des essais/erreurs
La branche dite master
est spéciale, elle contient la
version "propre" du code.
On utilise classiquement
une branche dev pour les
développements, de
laquelle partent d'autres
branches pour le
développement de
fonctionnalités.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    21 / 68Git & Rstudio
(3/5) Faire des essais/erreurs
Les branches peuvent
n'aboutir à rien, mais
certaines vont pouvoir
rejoindre le "tronc"
principal, on parle alors de
merge. Parfois des lignes
de codes diffèrent d'une
branche à l'autre cela
genere un conflict.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    22 / 68Git & Rstudio
(3/5) Faire des essais/erreurs
branche : un chemin
parallèle
merge : la fusion de une
ou plusieurs branches
conflict : des
modifications concurentes
sur le même fichiers, que
git ne parvient pas à gerer.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    23 / 68Git & Rstudio
(4/5) Faire un backup de votre projet
Git vous permet de faire
un backup de votre projet
versionné. Sur un serveur
distant, ailleurs, on appelle
cet endroit le remote
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    24 / 68Git & Rstudio
(4/5) Faire un backup de votre projet
Votre remote peut être sur
github (le plus célèbre) ou
sur un gitlab auto-hebergé.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    25 / 68Git & Rstudio
(4/5) Faire un backup de votre projet
Pour récuperer un projet depuis un
remote, la première fois, on effectue un
clone. Toute personne effectuant un
clone récupère une copie du projet sur
son ordinateur.
Quelqu'un effectuant des commit sur son
projet local va pouvoir les envoyer sur le
remote en faisant un push.
Les autre personnes connectées au remote
effectueront un pull pour récuperer les
commit de leur collaborateur
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    26 / 68Git & Rstudio
(4/5) Faire un backup de votre projet
remote : un serveur distant
ayant une copie du
repository
clone : récupérer pour la
première fois le repository
depuis le remote
pull : récupérer les
nouveaux commit en local
depuis le remote
push : envoyer ses nouveaux
commit vers le remote
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    27 / 68Git & Rstudio
(5/5) Un outil de collaborationGit est un outil de collaboration.
les commit permettent de suivre
ce qui est fait sur le projet.
le remote permet à d'autres
personnes d'accéder a votre
projet
la gestion des merge permet de
combiner votre travail avec celui
de quelqu'un d'autre
Grâce à git beaucoup de personnes
peuvent travailler sur le même
projet.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    28 / 68Git & Rstudio
Vocabulaire repository : le dossier que vous voulez
surveiller
commit : un instant figé dans la vie de votre
projet
hash : un identifiant unique
checkout : un saut dans le temps vers un commit
branche : un chemin paralelle
merge : la fusion de une ou plusieur branche
remote : un serveur distant ayant une copi de
repository
clone : récuperer pour la premiere fois le
repository depuis le remote
pull : recuperer les nouveaux commit en local
depuis le remote
push : envoyer ses nouveaux commit vers le
remote
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    29 / 68Git & Rstudio
Fonctionnalités :
1/5 : Raconter l'histoire
de votre projet
2/5 : Voyager dans le
temps
3/5 : Faire des
essais/erreurs
4/5 : Sauvegarder son
travail
5/5 : Collaborer
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    30 / 68Git & Rstudio
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    31 / 68Git & Rstudio
Git et RStudio
Git est nativement intégré dans RStudio.
Si vous êtes allergique à la ligne de commande, la fenêtre "Git" vous permet de réaliser
les opérations courantes en "point and clic".
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    32 / 68Git & Rstudio
Usage de Git
Au quotidien vous utiliserez ces 3 instructions principales
commit
Une fois des fichiers de votre projet modifiés, utiliser le panneau "Git" et le bouton
commits pour figer un état. Un commentaire expliquant vos modifications devra être
saisi.
Push
Une fois qu'un certain nombre de commit ont été effectués, afin de les envoyer sur le
remote, il faut effectuer un push. Pour celà, utiliser la fenêtre "Git" et le bouton push
(représenté sous la forme d'une flèche montante).
Pull
Pour rapatrier des modifications depuis le remote, il faut faire un pull en utilisant la
fenêtre "Git" et le bouton pull (représenté sous la forme d'une flèche descendante).
Votre projet Rstudio est alors modifié.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    33 / 68Git & Rstudio
Usage de Git
Le panneau git de Rstudio va vous indiquer en temps réel l'état de votre projet. Le
statut des différents fichiers et dossiers seront affichés.
Un nouveau fichier sera associé a une icone orange contenant un ?
Ce nouveau fichier sera associé un une icone verte contenant un A une fois que
vous l'aurez coché (dans la colonne 'staged').
Un fichier modifié sera associé a une icone bleue contenant un MMeetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    34 / 68Git & Rstudio
Usage de Git
Premier commit
Avec File > New File > Rscript ( ou ctrl + shift + N) ouvrez un nouveau fichier .R .
Enregistrez le (ctrl + S) dans votre projet. Il va apparaitre en tant que nouveau
fichier dans le panneau Git. Choisissez un nom explicite,idéalement sans
majuscules ni caracteres spéciaux.
Avant de faire votre Premier commit, écrivez quelque chose dans ce fichier avant
de l'enregistrer à nouveau.
Cochez le dans la colonne staged ( il passe avec une icone verte A )
Cliquez sur le bouton commit
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    35 / 68Git & Rstudio
Usage de Git
Premier commit
Vous devez écrire un message de commit. Ce message est important car il raconte
l'histoire de votre projet. Cliquez ensuite sur le bouton commit de cette fenêtre. Vous
pouvez ensuite cliquer sur close et fermer la fenêtre de commit.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    36 / 68Git & Rstudio
Usage de Git
Premier commit
Vous devez écrire un message de commit. Ce message est important car il raconte
l'histoire de votre projet. Cliquez ensuite sur le bouton commit de cette fenêtre.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    37 / 68Git & Rstudio
Usage de Git
Premier commit
Faites à présent d'autres modifications sur ce fichier, enregistrez-les. git detecte la
modification et passe votre fichier au statut "modifié" (icone bleue avec un M)
Faites un nouveau commit de cette modification :
1. on coche le fichier
2. on clique sur commit
notez la fenêtre qui précise les modifications effectuées
3. on précise le message de commit
4. on clique sur commit
5. on ferme la fenêtre de commit
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    38 / 68Git & Rstudio
Usage de Git
Premier push
Pour l'heure les commits que vous avez fait ne sont présents qu'en local sur votre
ordinateur, le remote n'est pas au courant des modifications que vous avez faites.
Il vous faut envoyer ces commits sur le serveur distant, vous allez faire un push. Pour
cela il faut cliquer sur la flèche verte montante du panneau git.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    39 / 68Git & Rstudio
Usage de Git
Premier push
Rendez-vous à nouveau sur gitlab à l'adresse de la forme
https://git.thinkr.fr/votre_nom/monprojet , actualisez la page. Vous verrez que votre
projet est accessible en ligne.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    40 / 68Git & Rstudio
Usage de Git
Premier pull
Pour le moment vous travaillez seul sur votre projet, donc le pull est sans effet : vous
êtes "already up to date". Nous allons simuler une modification d'un fichier en
intervenant directement dans l'interface web de gitlab.
cliquer sur le fichier .R que vous avez versionné, puis sur 'edit'
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    41 / 68Git & Rstudio
Usage de Git
Premier pull
Utiliser l'interface web pour modifier le fichier et cliquer sur 'commit change'
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    42 / 68Git & Rstudio
Usage de Git
Premier pull
Rendez vous dans Rstudio pour cliquer sur pull (flèche verticale descendante), vous
verrez alors le fichier .R se mettre à jour dans votre projet local
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    43 / 68Git & Rstudio
Usage de Git
le .gitignore
Il est n'est pas necessaire de versionner l'intégralité des fichiers de votre projet. Seuls
ceux "cochés" seront associés à des commits.
Il est possible d'explicitement demander à git de ne pas surveiller tel ou tel fichier.
C'est le role du fichier .gitignore qui se trouve à la racine de votre projet.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    44 / 68Git & Rstudio
Usage de Git
le .gitignore
Il s'agit d'un fichier texte qui accepte les expressions régulieres et permet de définir
des régles qui correspondent à plusieurs fichiers.
Vous pouvez editer ce fichier directement ou utiliser dans R la commande :
usethis::use_git_ignore("fichier.R")
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    45 / 68Git & Rstudio
Usage de Git
Voir l'historique
En cliquant sur commit puis history, vous verrez la succession de commits réalisés.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    46 / 68Git & Rstudio
Usage de Git
Voir l'historique
Les message de commits sont très importants
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    47 / 68Git & Rstudio
Usage de Git
Premier conflit
Ecrire à plusieurs en même temps sur le même fichier, même avec un outil dédié reste
quelque chose de "problématique". Parfois les modifications que vous allez récupérer
avec un pull contredisent des modifications que vous avez effectuées de votre côté en
local. Il se produit alors un conflit.
Le fichier est associé a une icone orange avec un U, et son contenu peut être un peu
déroutant... Les conflits sont des lignes de codes qui diffèrent d'une version à l'autre.
La résolution des conflits est à la charge de l'utilisateur.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    48 / 68Git & Rstudio
Usage de Git
Premier conflit
Pour générer un conflit :
1. Depuis Rstudio modifer un fichier, faire un commit
2. Depuis l'interface web modifier ce même fichier, en racontant autre chose et faire
'commit change'
3. Depuis Rstudio faire un pull
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    49 / 68Git & Rstudio
Usage de Git
Premier conflit
Dans le fichier on distingue des parties délimitées par des <<<< et des >>>>, et vont
s'entrecroiser les lignes qui viennent des commits locaux et des commits distants.
Pour résoudre un conflit, 2 solutions :
1. Pour les cas simples, on peut éditer directement, à la main le fichier en prenant
soin de bien supprimer les <<<< et >>>> (ctrl + D permet de supprimer une ligne
dans RStudio). Une fois la modification effectuée, il suffit de recocher le fichier et
de refaire un commits.
2. Pour les cas plus complexes, un outil peut être nécessaire. Nous allons utiliser
winmerge. Pour le lancer depuis le terminal il faut lancer git mergetool
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    50 / 68Git & Rstudio
Usage de Git
Premier conflit
Winmerge permet de voir simultanément les 3 fichiers, le local, le distant et celui qui
sera conservé. Il dispose d'outil graphique permettant de choisir ligne à ligne les
modifications à accepter ou non.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    51 / 68Git & Rstudio
Usage de Git
Première branche
Pour l'heure nous travaillons directement dans l'unique branche 'master'. Nous allons
créer une branche depuis Rstudio. Cette branche permettra de travailler sur le projet
sans toucher, pour le moment, à la branche 'master'.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    52 / 68Git & Rstudio
Usage de Git
Première branche
Dans cette 'nouvelle branche', effectuez des modifications et des commits. Modifiez
des fichiers rajoutez-en des nouveaux et faites un push.
Retournez sur la banche master
Vous remarquerez que le contenu de votre projet local a été remis dans le même état
qu'au moment où vous avez créé la 'nouvelle branche'.
Profitez-en pour rajouter un nouveau fichier dans la branche master, faites un
commits et un push.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    53 / 68Git & Rstudio
Usage de Git
Premier merge
Les 2 branches 'master' et 'nouvelle branche' diffèrent de plus en plus, nous allons
maintenant verser dans master les modifications effectuées dans 'nouvelle branche' :
nous allons faire un merge
2 façons de faire :
1. Via l'interface web de gitlab, en cliquant sur 'Merge Request'
Une merge request ne devrait jamais être validée par l'auteur de la modification. Il
s'agit d'une bonne occasion pour qu'une autre personne dans le projet vérifie puis
accepte la modification effectuée sur 'master'. gitlab rend ce processus 'user friendly'.
Dans gitlab on parle de 'merge request', dans github de 'pull request'. Il s'agit de la
même chose.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    54 / 68Git & Rstudio
Usage de Git
Premier merge
1. Depuis le terminal
git checkout master # pour se positionner dans master si ce n'est pas le
cas
git merge nouvelle_branche # pour rappatrier le contenu de nouvelle_branche
vers master
Des conflits peuvent là-aussi avoir lieu, ils sont à régler avant d'aller plus loin.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    55 / 68Git & Rstudio
Usage de Git
Premier checkout
Git vous permet de revenir en arrière et de voyager dans l'histoire de votre projet. Il
est tout à fait possible de revenir à l'état du projet d'il y a quelques jours pour créer
une nouvelle branche à cet endroit.
Pour vous repositionner sur un commit particulier, il vous faut trouver son hash. il
est visible dans la colonne 'SHA1' dans le volet history
On peut alors dans le terminal effectuer un checkout
git checkout 5fd8e
Si l'on souhaite effectuer des modifications à partir de ce commit il convient d'y créer
une branche, afin d'éviter de perdre le contact avec les autres commits plus récents.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    56 / 68Git & Rstudio
git status
A tout moment dans le terminal l'instruction git status nous retournera l'etat
actuel du dépôt. Il s'agit de la version "ligne de commande" de ce que représente le
panneau git de Rstudio.
Pour certain cas complexes, seule cette instruction vous donnera les informations
necessaires à la résolution de votre souci. Ou vous permettra de copier coller dans
google les messages d'erreurs que vous risquez de rencontrer.
$ git status
On branch master
Your branch is up to date with 'origin/master'.
Untracked files:
(use "git add ..." to include in what will be c
ommitted)
mon premier script.R.orig
nothing added to commit but untracked files present (us
e "git add" to track)
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    57 / 68Git & Rstudio
le working directory est votre
dossier de travail "classique"
la zone de staging contient les
fichiers que vous avez coché dans
l'interface git de Rstudio
les commits sont stockés dans le
repository.
Les trois niveaux de travail en local
A chaque action dans l'interface git de Rstudio correspond une ligne de commande,
voici un workflow classique :
git add . # on coche tout les fichiers
git commit -m "message de commit" # on fait un commit
git pull # on récupere les modifications distantes
git push # on envoie les modifications sur le repository
git checkout -b autre_branche # on construit une branche
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    58 / 68Git & Rstudio
Le quatrième niveaux 'bonus' de travail en local
Il existe une 4ème zone de travail appelée stash, elle permet d'y remiser des
modifications faites dans le working directory, sans devoir les passer en staging (c'est-
à-dire les cocher ou les passer dans un commit). Cette zone peut-être vue comme une
zone tampon. On l'utilise souvent avant un pull, un merge ou pour mettre de coté les
modifications en cours le temps d'une opération "périlleuse".
Depuis le terminal
git stash # envoie le contenue des modifications non suivies dans la remise
git stash apply # renvoie la remise vers le working directory
Vous pouvez avoir plusieurs remises et les visualiser avec git stash list
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    59 / 68Git & Rstudio
Vue d'ensemble des commandes de bases
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    60 / 68Git & Rstudio
Autour de git
gitlab et github sont bien plus que "git" il s'agit de véritables outils dédiés à la gestion
du développement d'un projet. Beaucoup de fonctionnalité annexes y sont
implémentés.
On notera tout particulierement :
les issues
le kanban
l'intégration continue
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    61 / 68Git & Rstudio
Autour de git
Les issues
Les issues sont des de taches et/ou de bug relatifs au projets. On peut aisément :
discuter un point
définir une échéance
assigner une personne
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    62 / 68Git & Rstudio
Autour de git
Les issues
Il est possible, et même recommandé d'associer ses commits à une issue. Pour cela il
faut faire référence a #numero_issue dans le message de commit. Le commit viendra
alors s'intércaler dans la discussion. Des notations spécifiques comme fix #123 ou
close #123 permettent de fermer une issue via un commit.
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    63 / 68Git & Rstudio
Autour de git
Les kanban
Les issues peuvent etre associé à des label en fonction de leurs états. on peut alors voir
l'avancement de chacun des points dans le temps et la charge de chacun des
contributeurs.
L'idée est de déplacer une issue de la gauche (personne n'a pris en charge le soucis)
vers la droite (l'issue et terminée et validée)
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    64 / 68Git & Rstudio
Autour de git
L'intégration continue.
Avant de faire un push il convient de vérifier que le code envoyé est correct (par
exemple dans le cadre de la création d'un package R on lancera un check) mais pour
plus de prudence on peut demander à gitlab de lui meme lancer les différents test sur
le projet. Ces tesst peuvent etre divers et être lancé dans des environnements
différents (ancienne version de R, actuelle et future)
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    65 / 68Git & Rstudio
Autour de git
L'intégration continue.
Ces outils se basent sur docker et sont facile a mettre en oeuvre. En quelque clic
l'interface et prête, et il ne reste plus qu'à rajouter un fichier .gitlab-ci.yml à la
racine du projet
image: rocker/tidyverse
stages:
- build
- test
- deploy
building:
stage: build
script:
- R -e "remotes::install_deps(dependencies = TRUE)"
- R -e 'devtools::check()'
testing:
stage: test
allow_failure: true Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    66 / 68Git & Rstudio
Git flow
Travailler à plusieur necessite de mettre en place une methode de travail. Elle est à
adapter à chaque type de projet et en fonctions des équipes. Comment et quand créer
une branche, quelle notation, quelle procédure de contrôle... ces notions
correspondent à git flow
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    67 / 68Git & Rstudio
me retrouver:
vincent@thinkr.fr
http://twitter.com/vincentguyader
http://twitter.com/thinkr_fr
https://rtask.thinkr.fr/
https://thinkr.fr/
pour aller plus loin :
https://happygitwithr.com/
https://git-scm.com/book/fr/
https://danielkummer.github.io/git-
flow-cheatsheet/index.fr_FR.html
https://fr.wikipedia.org/wiki/Git
### Merci !
Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    68 / 68Git & Rstudio

Contenu connexe

Tendances

Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipseFrancois ANDRE
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséECAM Brussels Engineering School
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nulsMalk Zameth
 
Git : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebaseGit : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebasejcbaudier
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versiongoldoraf
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de gitJulien Blin
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitGeoffrey Bachelet
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienneSylvain Witmeyer
 

Tendances (14)

Travailler avec git et eclipse
Travailler avec git et eclipseTravailler avec git et eclipse
Travailler avec git et eclipse
 
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentraliséDécouvrir et utiliser Git : le logiciel de gestion de versions décentralisé
Découvrir et utiliser Git : le logiciel de gestion de versions décentralisé
 
Git pour les (pas si) nuls
Git pour les (pas si) nulsGit pour les (pas si) nuls
Git pour les (pas si) nuls
 
Git : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebaseGit : Deux écoles de pensées, merge vs rebase
Git : Deux écoles de pensées, merge vs rebase
 
Git l'essentiel
Git l'essentielGit l'essentiel
Git l'essentiel
 
Tutorial Git
Tutorial GitTutorial Git
Tutorial Git
 
Versioning avec Git
Versioning avec GitVersioning avec Git
Versioning avec Git
 
Git ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de versionGit ou le renouveau du contrôle de version
Git ou le renouveau du contrôle de version
 
Présentation de git
Présentation de gitPrésentation de git
Présentation de git
 
Migration d'une base de code subversion vers git
Migration d'une base de code subversion vers gitMigration d'une base de code subversion vers git
Migration d'une base de code subversion vers git
 
GitPourLaNulle
GitPourLaNulleGitPourLaNulle
GitPourLaNulle
 
Git utilisation quotidienne
Git   utilisation quotidienneGit   utilisation quotidienne
Git utilisation quotidienne
 
Git
GitGit
Git
 
GIT Fundamentals
GIT FundamentalsGIT Fundamentals
GIT Fundamentals
 

Similaire à Git & Rstudio vincent guyader

Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphipprem
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfChris Saez
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 gitPape Diop
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfmouad55
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & githubMonoem Youneb
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projectsThierry Gayet
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning gitNassim Bahri
 
Gestion de projet avec GitHub
Gestion de projet avec GitHubGestion de projet avec GitHub
Gestion de projet avec GitHubNicolas Bats
 
Objets connectés WLAN et ESP32 ou WPAN et bananapi et nrf24-l01+
Objets connectés WLAN et ESP32  ou WPAN et bananapi et nrf24-l01+Objets connectés WLAN et ESP32  ou WPAN et bananapi et nrf24-l01+
Objets connectés WLAN et ESP32 ou WPAN et bananapi et nrf24-l01+Jl Salvat
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesVincent Composieux
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Ippon
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratifPhilippe Guglielmetti
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratifPhilippe Guglielmetti
 
Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Christian Charreyre
 
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Makina Corpus
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...ECAM Brussels Engineering School
 
Développer une application android en 2015
Développer une application android  en 2015Développer une application android  en 2015
Développer une application android en 2015Florent Champigny
 

Similaire à Git & Rstudio vincent guyader (20)

Utilisation de git avec Delphi
Utilisation de git avec DelphiUtilisation de git avec Delphi
Utilisation de git avec Delphi
 
Pourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdfPourquoi versionner ses githooks.pdf
Pourquoi versionner ses githooks.pdf
 
Cours sur github part3 git
Cours sur github part3 gitCours sur github part3 git
Cours sur github part3 git
 
Initiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdfInitiation à Git, GitHub2.pdf
Initiation à Git, GitHub2.pdf
 
Débuter avec Git & github
Débuter avec Git & githubDébuter avec Git & github
Débuter avec Git & github
 
GIT training - basic for software projects
GIT training - basic for software projectsGIT training - basic for software projects
GIT training - basic for software projects
 
Le système de versioning git
Le système de versioning gitLe système de versioning git
Le système de versioning git
 
Gestion de projet avec GitHub
Gestion de projet avec GitHubGestion de projet avec GitHub
Gestion de projet avec GitHub
 
Objets connectés WLAN et ESP32 ou WPAN et bananapi et nrf24-l01+
Objets connectés WLAN et ESP32  ou WPAN et bananapi et nrf24-l01+Objets connectés WLAN et ESP32  ou WPAN et bananapi et nrf24-l01+
Objets connectés WLAN et ESP32 ou WPAN et bananapi et nrf24-l01+
 
Retour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, KubernetesRetour d'expérience technique Go, gRPC, Kubernetes
Retour d'expérience technique Go, gRPC, Kubernetes
 
3_SCM_Git.pdf
3_SCM_Git.pdf3_SCM_Git.pdf
3_SCM_Git.pdf
 
Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014Formation GIT gratuite par ippon 2014
Formation GIT gratuite par ippon 2014
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratif
 
Outils web pour le développement collaboratif
Outils web pour le développement collaboratifOutils web pour le développement collaboratif
Outils web pour le développement collaboratif
 
Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015Présentation Yocto - SophiaConf 2015
Présentation Yocto - SophiaConf 2015
 
git.pdf
git.pdfgit.pdf
git.pdf
 
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
Petit déjeuner "Développer sur le cloud, ou comment tout construire à partir ...
 
Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...Développement informatique : Gestion de projet, versioning, debugging, testin...
Développement informatique : Gestion de projet, versioning, debugging, testin...
 
Outils de gestion de projets
Outils de gestion de projetsOutils de gestion de projets
Outils de gestion de projets
 
Développer une application android en 2015
Développer une application android  en 2015Développer une application android  en 2015
Développer une application android en 2015
 

Dernier

COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfabatanebureau
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne FontaineTxaruka
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film françaisTxaruka
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptssusercbaa22
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...M2i Formation
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertChristianMbip
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...Faga1939
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.Franck Apolis
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptxTxaruka
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfssuser40e112
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.Txaruka
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxssusercbaa22
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxssuserbd075f
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film françaisTxaruka
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptxMalikaIdseaid1
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptxSAID MASHATE
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptssusercbaa22
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurdinaelchaine
 

Dernier (20)

COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdfCOURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
COURS SVT 3 EME ANNEE COLLEGE 2EME SEM.pdf
 
Evaluación Alumnos de Ecole Victor Hugo
Evaluación Alumnos de Ecole  Victor HugoEvaluación Alumnos de Ecole  Victor Hugo
Evaluación Alumnos de Ecole Victor Hugo
 
Bolero. pptx . Film de A nnne Fontaine
Bolero. pptx . Film   de  A nnne FontaineBolero. pptx . Film   de  A nnne Fontaine
Bolero. pptx . Film de A nnne Fontaine
 
Sidonie au Japon . pptx Un film français
Sidonie    au   Japon  .  pptx  Un film françaisSidonie    au   Japon  .  pptx  Un film français
Sidonie au Japon . pptx Un film français
 
MaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.pptMaintenanceLa Maintenance Corrective.ppt
MaintenanceLa Maintenance Corrective.ppt
 
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
Formation M2i - Intelligence Artificielle Comment booster votre productivité ...
 
systeme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expertsysteme expert_systeme expert_systeme expert
systeme expert_systeme expert_systeme expert
 
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
LA MONTÉE DE L'ÉDUCATION DANS LE MONDE DE LA PRÉHISTOIRE À L'ÈRE CONTEMPORAIN...
 
A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.A3iFormations, organisme de formations certifié qualiopi.
A3iFormations, organisme de formations certifié qualiopi.
 
Pâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie PelletierPâques de Sainte Marie-Euphrasie Pelletier
Pâques de Sainte Marie-Euphrasie Pelletier
 
Fondation Louis Vuitton. pptx
Fondation      Louis      Vuitton.   pptxFondation      Louis      Vuitton.   pptx
Fondation Louis Vuitton. pptx
 
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdfMICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
MICROBIOLOGIE ENDODONTIQUE english and frensh 25 nov 2020.pdf
 
Boléro. pptx Film français réalisé par une femme.
Boléro.  pptx   Film   français   réalisé  par une  femme.Boléro.  pptx   Film   français   réalisé  par une  femme.
Boléro. pptx Film français réalisé par une femme.
 
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptxApproche-des-risques-par-l’analyse-des-accidents-1.pptx
Approche-des-risques-par-l’analyse-des-accidents-1.pptx
 
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptxSUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
SUPPORT DE SUR COURS_GOUVERNANCE_SI_M2.pptx
 
La nouvelle femme . pptx Film français
La   nouvelle   femme  . pptx  Film françaisLa   nouvelle   femme  . pptx  Film français
La nouvelle femme . pptx Film français
 
presentation l'interactionnisme symbolique finale.pptx
presentation l'interactionnisme symbolique  finale.pptxpresentation l'interactionnisme symbolique  finale.pptx
presentation l'interactionnisme symbolique finale.pptx
 
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
666148532-Formation-Habilitation-ELECTRIQUE-ENTREPRISE-MARS-2017.pptx
 
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.pptMécanique Automobile LE TURBOCOMPRESSEUR.ppt
Mécanique Automobile LE TURBOCOMPRESSEUR.ppt
 
présentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteurprésentation sur l'échafaudage dans des travaux en hauteur
présentation sur l'échafaudage dans des travaux en hauteur
 

Git & Rstudio vincent guyader

  • 1. Git & Rstudio Versionner son code et travailler de manière collaborative Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    1 / 68
  • 2. Data Scientist, R expert. https://rtask.thinkr.fr https://github.com/ThinkR-open https://twitter.com/thinkr_fr Vincent Guyader Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    2 / 68Git & Rstudio
  • 3. git c'est quoi ? git est un logiciel que vous allez installer sur votre ordinateur, sur ceux de vos collaborateurs et sur un serveur distant. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    3 / 68Git & Rstudio
  • 4. Git à quoi ca sert ? git va vous aider à suivre les modifications que vous allez faire sur un projet. (seul ou à plusieurs) Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    4 / 68Git & Rstudio
  • 5. Git ca ressemble à quoi ? git est un outil en ligne de commande adoré par les développeurs de tous bords. MAIS on peut (quasiment) se passer de la ligne de commande en passant par des interfaces graphiques bien pensées. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    5 / 68Git & Rstudio
  • 6. Git ca ressemble à quoi ? Rstudio intègre git nativement et le rend facilement accessible. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    6 / 68Git & Rstudio
  • 7. Git ca vient d'où ? Concu par linus torvald (le papa du noyau linux) à partir de 2005. quand on lui a demandé pourquoi il avait appelé son logiciel “git”, qui est à peu près l'équivalent de “connard” en argot britannique, Linus Torvalds a répondu “je ne suis qu'un sale égocentrique, donc j'appelle tous mes projets d'après ma propre personne. D'abord Linux, puis Git.” Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    7 / 68Git & Rstudio
  • 8. (1/5) Raconter l'histoire de votre projetGit est utilisé pour faire des snapshots de l'état des fichiers d'un dossier que vous souhaitez surveiller Ce dossier est appelé repository A chaque fois que vous souhaitez figer l'état du repository vous faites un commit Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    8 / 68Git & Rstudio
  • 9. (1/5) Raconter l'histoire de votre projet Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    9 / 68Git & Rstudio
  • 10. (1/5) Raconter l'histoire de votre projet Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    10 / 68Git & Rstudio
  • 11. (1/5) Raconter l'histoire de votre projet Chaque commit fige un certain nombre d'informations : qui a fait la modification ? quand la modification a été réalisée ? pourquoi la modification a été réalisée (via un message de commit) ? Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    11 / 68Git & Rstudio
  • 12. (1/5) Raconter l'histoire de votre projet Git consigne l'histoire de votre projet : Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    12 / 68Git & Rstudio
  • 13. (1/5) Raconter l'histoire de votre projet repository : le dossier que vous voulez surveiller commit : un instant figé dans la vie de votre projet Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    13 / 68Git & Rstudio
  • 14. (2/5) Voyager dans le temps Git peut vous servir de machine à voyager dans le temps. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    14 / 68Git & Rstudio
  • 15. (2/5) Voyager dans le temps A chaque commit on associe un hash, une succession de caractères aléatoires et unique. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    15 / 68Git & Rstudio
  • 16. (2/5) Voyager dans le temps On peut faire référence a ce hash pour effectuer un checkout est revenir à l'état de ce commit. Cela modifie le repository mais n'efface aucunement les autres commit. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    16 / 68Git & Rstudio
  • 17. (2/5) Voyager dans le temps hash : un identifiant unique checkout : un saut dans le temps vers un commit Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    17 / 68Git & Rstudio
  • 18. (3/5) Faire des essais/erreurs La vie d'un projet n'est pas un long fleuve tranquile, on prend parfois des détours, on tombe sur des culs de sac et on fait demi tour. Git rend facile le fait de pouvoir faire des choses "juste pour voir". Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    18 / 68Git & Rstudio
  • 19. (3/5) Faire des essais/erreurs Pour cela on va utiliser des branches Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    19 / 68Git & Rstudio
  • 20. (3/5) Faire des essais/erreurs Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    20 / 68Git & Rstudio
  • 21. (3/5) Faire des essais/erreurs La branche dite master est spéciale, elle contient la version "propre" du code. On utilise classiquement une branche dev pour les développements, de laquelle partent d'autres branches pour le développement de fonctionnalités. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    21 / 68Git & Rstudio
  • 22. (3/5) Faire des essais/erreurs Les branches peuvent n'aboutir à rien, mais certaines vont pouvoir rejoindre le "tronc" principal, on parle alors de merge. Parfois des lignes de codes diffèrent d'une branche à l'autre cela genere un conflict. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    22 / 68Git & Rstudio
  • 23. (3/5) Faire des essais/erreurs branche : un chemin parallèle merge : la fusion de une ou plusieurs branches conflict : des modifications concurentes sur le même fichiers, que git ne parvient pas à gerer. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    23 / 68Git & Rstudio
  • 24. (4/5) Faire un backup de votre projet Git vous permet de faire un backup de votre projet versionné. Sur un serveur distant, ailleurs, on appelle cet endroit le remote Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    24 / 68Git & Rstudio
  • 25. (4/5) Faire un backup de votre projet Votre remote peut être sur github (le plus célèbre) ou sur un gitlab auto-hebergé. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    25 / 68Git & Rstudio
  • 26. (4/5) Faire un backup de votre projet Pour récuperer un projet depuis un remote, la première fois, on effectue un clone. Toute personne effectuant un clone récupère une copie du projet sur son ordinateur. Quelqu'un effectuant des commit sur son projet local va pouvoir les envoyer sur le remote en faisant un push. Les autre personnes connectées au remote effectueront un pull pour récuperer les commit de leur collaborateur Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    26 / 68Git & Rstudio
  • 27. (4/5) Faire un backup de votre projet remote : un serveur distant ayant une copie du repository clone : récupérer pour la première fois le repository depuis le remote pull : récupérer les nouveaux commit en local depuis le remote push : envoyer ses nouveaux commit vers le remote Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    27 / 68Git & Rstudio
  • 28. (5/5) Un outil de collaborationGit est un outil de collaboration. les commit permettent de suivre ce qui est fait sur le projet. le remote permet à d'autres personnes d'accéder a votre projet la gestion des merge permet de combiner votre travail avec celui de quelqu'un d'autre Grâce à git beaucoup de personnes peuvent travailler sur le même projet. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    28 / 68Git & Rstudio
  • 29. Vocabulaire repository : le dossier que vous voulez surveiller commit : un instant figé dans la vie de votre projet hash : un identifiant unique checkout : un saut dans le temps vers un commit branche : un chemin paralelle merge : la fusion de une ou plusieur branche remote : un serveur distant ayant une copi de repository clone : récuperer pour la premiere fois le repository depuis le remote pull : recuperer les nouveaux commit en local depuis le remote push : envoyer ses nouveaux commit vers le remote Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    29 / 68Git & Rstudio
  • 30. Fonctionnalités : 1/5 : Raconter l'histoire de votre projet 2/5 : Voyager dans le temps 3/5 : Faire des essais/erreurs 4/5 : Sauvegarder son travail 5/5 : Collaborer Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    30 / 68Git & Rstudio
  • 31. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    31 / 68Git & Rstudio
  • 32. Git et RStudio Git est nativement intégré dans RStudio. Si vous êtes allergique à la ligne de commande, la fenêtre "Git" vous permet de réaliser les opérations courantes en "point and clic". Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    32 / 68Git & Rstudio
  • 33. Usage de Git Au quotidien vous utiliserez ces 3 instructions principales commit Une fois des fichiers de votre projet modifiés, utiliser le panneau "Git" et le bouton commits pour figer un état. Un commentaire expliquant vos modifications devra être saisi. Push Une fois qu'un certain nombre de commit ont été effectués, afin de les envoyer sur le remote, il faut effectuer un push. Pour celà, utiliser la fenêtre "Git" et le bouton push (représenté sous la forme d'une flèche montante). Pull Pour rapatrier des modifications depuis le remote, il faut faire un pull en utilisant la fenêtre "Git" et le bouton pull (représenté sous la forme d'une flèche descendante). Votre projet Rstudio est alors modifié. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    33 / 68Git & Rstudio
  • 34. Usage de Git Le panneau git de Rstudio va vous indiquer en temps réel l'état de votre projet. Le statut des différents fichiers et dossiers seront affichés. Un nouveau fichier sera associé a une icone orange contenant un ? Ce nouveau fichier sera associé un une icone verte contenant un A une fois que vous l'aurez coché (dans la colonne 'staged'). Un fichier modifié sera associé a une icone bleue contenant un MMeetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    34 / 68Git & Rstudio
  • 35. Usage de Git Premier commit Avec File > New File > Rscript ( ou ctrl + shift + N) ouvrez un nouveau fichier .R . Enregistrez le (ctrl + S) dans votre projet. Il va apparaitre en tant que nouveau fichier dans le panneau Git. Choisissez un nom explicite,idéalement sans majuscules ni caracteres spéciaux. Avant de faire votre Premier commit, écrivez quelque chose dans ce fichier avant de l'enregistrer à nouveau. Cochez le dans la colonne staged ( il passe avec une icone verte A ) Cliquez sur le bouton commit Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    35 / 68Git & Rstudio
  • 36. Usage de Git Premier commit Vous devez écrire un message de commit. Ce message est important car il raconte l'histoire de votre projet. Cliquez ensuite sur le bouton commit de cette fenêtre. Vous pouvez ensuite cliquer sur close et fermer la fenêtre de commit. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    36 / 68Git & Rstudio
  • 37. Usage de Git Premier commit Vous devez écrire un message de commit. Ce message est important car il raconte l'histoire de votre projet. Cliquez ensuite sur le bouton commit de cette fenêtre. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    37 / 68Git & Rstudio
  • 38. Usage de Git Premier commit Faites à présent d'autres modifications sur ce fichier, enregistrez-les. git detecte la modification et passe votre fichier au statut "modifié" (icone bleue avec un M) Faites un nouveau commit de cette modification : 1. on coche le fichier 2. on clique sur commit notez la fenêtre qui précise les modifications effectuées 3. on précise le message de commit 4. on clique sur commit 5. on ferme la fenêtre de commit Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    38 / 68Git & Rstudio
  • 39. Usage de Git Premier push Pour l'heure les commits que vous avez fait ne sont présents qu'en local sur votre ordinateur, le remote n'est pas au courant des modifications que vous avez faites. Il vous faut envoyer ces commits sur le serveur distant, vous allez faire un push. Pour cela il faut cliquer sur la flèche verte montante du panneau git. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    39 / 68Git & Rstudio
  • 40. Usage de Git Premier push Rendez-vous à nouveau sur gitlab à l'adresse de la forme https://git.thinkr.fr/votre_nom/monprojet , actualisez la page. Vous verrez que votre projet est accessible en ligne. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    40 / 68Git & Rstudio
  • 41. Usage de Git Premier pull Pour le moment vous travaillez seul sur votre projet, donc le pull est sans effet : vous êtes "already up to date". Nous allons simuler une modification d'un fichier en intervenant directement dans l'interface web de gitlab. cliquer sur le fichier .R que vous avez versionné, puis sur 'edit' Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    41 / 68Git & Rstudio
  • 42. Usage de Git Premier pull Utiliser l'interface web pour modifier le fichier et cliquer sur 'commit change' Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    42 / 68Git & Rstudio
  • 43. Usage de Git Premier pull Rendez vous dans Rstudio pour cliquer sur pull (flèche verticale descendante), vous verrez alors le fichier .R se mettre à jour dans votre projet local Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    43 / 68Git & Rstudio
  • 44. Usage de Git le .gitignore Il est n'est pas necessaire de versionner l'intégralité des fichiers de votre projet. Seuls ceux "cochés" seront associés à des commits. Il est possible d'explicitement demander à git de ne pas surveiller tel ou tel fichier. C'est le role du fichier .gitignore qui se trouve à la racine de votre projet. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    44 / 68Git & Rstudio
  • 45. Usage de Git le .gitignore Il s'agit d'un fichier texte qui accepte les expressions régulieres et permet de définir des régles qui correspondent à plusieurs fichiers. Vous pouvez editer ce fichier directement ou utiliser dans R la commande : usethis::use_git_ignore("fichier.R") Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    45 / 68Git & Rstudio
  • 46. Usage de Git Voir l'historique En cliquant sur commit puis history, vous verrez la succession de commits réalisés. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    46 / 68Git & Rstudio
  • 47. Usage de Git Voir l'historique Les message de commits sont très importants Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    47 / 68Git & Rstudio
  • 48. Usage de Git Premier conflit Ecrire à plusieurs en même temps sur le même fichier, même avec un outil dédié reste quelque chose de "problématique". Parfois les modifications que vous allez récupérer avec un pull contredisent des modifications que vous avez effectuées de votre côté en local. Il se produit alors un conflit. Le fichier est associé a une icone orange avec un U, et son contenu peut être un peu déroutant... Les conflits sont des lignes de codes qui diffèrent d'une version à l'autre. La résolution des conflits est à la charge de l'utilisateur. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    48 / 68Git & Rstudio
  • 49. Usage de Git Premier conflit Pour générer un conflit : 1. Depuis Rstudio modifer un fichier, faire un commit 2. Depuis l'interface web modifier ce même fichier, en racontant autre chose et faire 'commit change' 3. Depuis Rstudio faire un pull Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    49 / 68Git & Rstudio
  • 50. Usage de Git Premier conflit Dans le fichier on distingue des parties délimitées par des <<<< et des >>>>, et vont s'entrecroiser les lignes qui viennent des commits locaux et des commits distants. Pour résoudre un conflit, 2 solutions : 1. Pour les cas simples, on peut éditer directement, à la main le fichier en prenant soin de bien supprimer les <<<< et >>>> (ctrl + D permet de supprimer une ligne dans RStudio). Une fois la modification effectuée, il suffit de recocher le fichier et de refaire un commits. 2. Pour les cas plus complexes, un outil peut être nécessaire. Nous allons utiliser winmerge. Pour le lancer depuis le terminal il faut lancer git mergetool Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    50 / 68Git & Rstudio
  • 51. Usage de Git Premier conflit Winmerge permet de voir simultanément les 3 fichiers, le local, le distant et celui qui sera conservé. Il dispose d'outil graphique permettant de choisir ligne à ligne les modifications à accepter ou non. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    51 / 68Git & Rstudio
  • 52. Usage de Git Première branche Pour l'heure nous travaillons directement dans l'unique branche 'master'. Nous allons créer une branche depuis Rstudio. Cette branche permettra de travailler sur le projet sans toucher, pour le moment, à la branche 'master'. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    52 / 68Git & Rstudio
  • 53. Usage de Git Première branche Dans cette 'nouvelle branche', effectuez des modifications et des commits. Modifiez des fichiers rajoutez-en des nouveaux et faites un push. Retournez sur la banche master Vous remarquerez que le contenu de votre projet local a été remis dans le même état qu'au moment où vous avez créé la 'nouvelle branche'. Profitez-en pour rajouter un nouveau fichier dans la branche master, faites un commits et un push. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    53 / 68Git & Rstudio
  • 54. Usage de Git Premier merge Les 2 branches 'master' et 'nouvelle branche' diffèrent de plus en plus, nous allons maintenant verser dans master les modifications effectuées dans 'nouvelle branche' : nous allons faire un merge 2 façons de faire : 1. Via l'interface web de gitlab, en cliquant sur 'Merge Request' Une merge request ne devrait jamais être validée par l'auteur de la modification. Il s'agit d'une bonne occasion pour qu'une autre personne dans le projet vérifie puis accepte la modification effectuée sur 'master'. gitlab rend ce processus 'user friendly'. Dans gitlab on parle de 'merge request', dans github de 'pull request'. Il s'agit de la même chose. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    54 / 68Git & Rstudio
  • 55. Usage de Git Premier merge 1. Depuis le terminal git checkout master # pour se positionner dans master si ce n'est pas le cas git merge nouvelle_branche # pour rappatrier le contenu de nouvelle_branche vers master Des conflits peuvent là-aussi avoir lieu, ils sont à régler avant d'aller plus loin. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    55 / 68Git & Rstudio
  • 56. Usage de Git Premier checkout Git vous permet de revenir en arrière et de voyager dans l'histoire de votre projet. Il est tout à fait possible de revenir à l'état du projet d'il y a quelques jours pour créer une nouvelle branche à cet endroit. Pour vous repositionner sur un commit particulier, il vous faut trouver son hash. il est visible dans la colonne 'SHA1' dans le volet history On peut alors dans le terminal effectuer un checkout git checkout 5fd8e Si l'on souhaite effectuer des modifications à partir de ce commit il convient d'y créer une branche, afin d'éviter de perdre le contact avec les autres commits plus récents. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    56 / 68Git & Rstudio
  • 57. git status A tout moment dans le terminal l'instruction git status nous retournera l'etat actuel du dépôt. Il s'agit de la version "ligne de commande" de ce que représente le panneau git de Rstudio. Pour certain cas complexes, seule cette instruction vous donnera les informations necessaires à la résolution de votre souci. Ou vous permettra de copier coller dans google les messages d'erreurs que vous risquez de rencontrer. $ git status On branch master Your branch is up to date with 'origin/master'. Untracked files: (use "git add ..." to include in what will be c ommitted) mon premier script.R.orig nothing added to commit but untracked files present (us e "git add" to track) Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    57 / 68Git & Rstudio
  • 58. le working directory est votre dossier de travail "classique" la zone de staging contient les fichiers que vous avez coché dans l'interface git de Rstudio les commits sont stockés dans le repository. Les trois niveaux de travail en local A chaque action dans l'interface git de Rstudio correspond une ligne de commande, voici un workflow classique : git add . # on coche tout les fichiers git commit -m "message de commit" # on fait un commit git pull # on récupere les modifications distantes git push # on envoie les modifications sur le repository git checkout -b autre_branche # on construit une branche Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    58 / 68Git & Rstudio
  • 59. Le quatrième niveaux 'bonus' de travail en local Il existe une 4ème zone de travail appelée stash, elle permet d'y remiser des modifications faites dans le working directory, sans devoir les passer en staging (c'est- à-dire les cocher ou les passer dans un commit). Cette zone peut-être vue comme une zone tampon. On l'utilise souvent avant un pull, un merge ou pour mettre de coté les modifications en cours le temps d'une opération "périlleuse". Depuis le terminal git stash # envoie le contenue des modifications non suivies dans la remise git stash apply # renvoie la remise vers le working directory Vous pouvez avoir plusieurs remises et les visualiser avec git stash list Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    59 / 68Git & Rstudio
  • 60. Vue d'ensemble des commandes de bases Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    60 / 68Git & Rstudio
  • 61. Autour de git gitlab et github sont bien plus que "git" il s'agit de véritables outils dédiés à la gestion du développement d'un projet. Beaucoup de fonctionnalité annexes y sont implémentés. On notera tout particulierement : les issues le kanban l'intégration continue Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    61 / 68Git & Rstudio
  • 62. Autour de git Les issues Les issues sont des de taches et/ou de bug relatifs au projets. On peut aisément : discuter un point définir une échéance assigner une personne Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    62 / 68Git & Rstudio
  • 63. Autour de git Les issues Il est possible, et même recommandé d'associer ses commits à une issue. Pour cela il faut faire référence a #numero_issue dans le message de commit. Le commit viendra alors s'intércaler dans la discussion. Des notations spécifiques comme fix #123 ou close #123 permettent de fermer une issue via un commit. Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    63 / 68Git & Rstudio
  • 64. Autour de git Les kanban Les issues peuvent etre associé à des label en fonction de leurs états. on peut alors voir l'avancement de chacun des points dans le temps et la charge de chacun des contributeurs. L'idée est de déplacer une issue de la gauche (personne n'a pris en charge le soucis) vers la droite (l'issue et terminée et validée) Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    64 / 68Git & Rstudio
  • 65. Autour de git L'intégration continue. Avant de faire un push il convient de vérifier que le code envoyé est correct (par exemple dans le cadre de la création d'un package R on lancera un check) mais pour plus de prudence on peut demander à gitlab de lui meme lancer les différents test sur le projet. Ces tesst peuvent etre divers et être lancé dans des environnements différents (ancienne version de R, actuelle et future) Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    65 / 68Git & Rstudio
  • 66. Autour de git L'intégration continue. Ces outils se basent sur docker et sont facile a mettre en oeuvre. En quelque clic l'interface et prête, et il ne reste plus qu'à rajouter un fichier .gitlab-ci.yml à la racine du projet image: rocker/tidyverse stages: - build - test - deploy building: stage: build script: - R -e "remotes::install_deps(dependencies = TRUE)" - R -e 'devtools::check()' testing: stage: test allow_failure: true Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    66 / 68Git & Rstudio
  • 67. Git flow Travailler à plusieur necessite de mettre en place une methode de travail. Elle est à adapter à chaque type de projet et en fonctions des équipes. Comment et quand créer une branche, quelle notation, quelle procédure de contrôle... ces notions correspondent à git flow Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    67 / 68Git & Rstudio
  • 68. me retrouver: vincent@thinkr.fr http://twitter.com/vincentguyader http://twitter.com/thinkr_fr https://rtask.thinkr.fr/ https://thinkr.fr/ pour aller plus loin : https://happygitwithr.com/ https://git-scm.com/book/fr/ https://danielkummer.github.io/git- flow-cheatsheet/index.fr_FR.html https://fr.wikipedia.org/wiki/Git ### Merci ! Meetup R Addicts Paris - 07/11/2019 - https://thinkr.fr    68 / 68Git & Rstudio