Versionner, collaborer et garder des traces de travail utiles
Les outils du cours
Git et GitHub ne servent pas seulement à remettre des fichiers. Ils permettent de conserver l’histoire d’un projet, de vérifier ce qui a été fait et de travailler avec d’autres personnes sans perdre le fil.
« Quel fichier est le bon? Qu’est-ce qui a changé? Est-ce que je peux revenir en arrière? »
Un projet de science des données produit rapidement beaucoup de traces:
Sans historique explicite, on garde souvent des copies comme analyse_finale_v7_vraiment_finale.R. Elles n’expliquent ni le changement, ni sa raison, ni la version qui a produit un résultat.
Le contrôle de version enregistre les changements d’un ensemble de fichiers au fil du temps afin de pouvoir comparer, comprendre et retrouver des versions antérieures.
La responsabilité scientifique reste humaine: Git conserve une trace, mais ne valide pas automatiquement le raisonnement.
| Outil | Où? | Rôle principal |
|---|---|---|
| Git | Sur votre ordinateur, dans le dépôt local | Versionner les fichiers et leur historique |
| GitHub | Service en ligne | Héberger, partager, discuter, relire et organiser des projets Git |
Git fonctionne localement. Un commit est donc possible même si le réseau ou l’authentification GitHub ne fonctionne pas encore.
GitHub ajoute un dépôt distant, une interface Web et des outils de collaboration. C’est là que l’on peut voir les commits, ouvrir une issue, proposer une pull request ou publier un site lorsque le projet le prévoit.
Un dossier de projet, les fichiers et l’historique Git local.
Vous pouvez modifier, comparer et committer ici.
git push → ← git pull
Une copie distante du dépôt et un espace de collaboration.
Vous pouvez partager, relire et discuter ici.
Le mot origin désigne souvent le dépôt GitHub configuré comme dépôt distant. C’est une convention de nom, pas un service distinct.
Le dossier du projet et son historique Git.
Un point d’historique qui enregistre un ensemble ciblé de changements.
La différence entre deux états de fichiers.
Une ligne de travail distincte. Elle isole une modification avant son intégration.
Un dépôt distant connu du dépôt local, souvent GitHub.
La porte d’entrée du projet: objectif, structure et procédure minimale.
Chaque étape peut devenir un ou plusieurs commits lorsque le travail atteint un état qui mérite d’être conservé.
Un commit n’est pas un bouton « fini ». C’est une trace précise: ce qui a changé et pourquoi cette étape est maintenant enregistrée.
update
test
ok
version finale
Ces messages obligent les autres personnes, ou vous-même dans trois semaines, à ouvrir le diff pour comprendre l’intention.
Ajouter le diagnostic de l’environnement
Corriger le chemin relatif des données
Documenter la procédure de reproduction
Le message décrit l’intention et le diff montre le détail.
Un bon test: une personne qui lit seulement la liste des commits peut-elle reconstituer le déroulement du projet?
git status montre les fichiers que Git reconnaît, ceux qui ont changé et ceux qui sont prêts pour le prochain commit.
git status répond: « Dans quel état est mon dépôt? »git diff répond: « Qu’est-ce qui a changé dans les fichiers non indexés? »Avant d’ajouter un fichier, lire son nom. Avant de committer, lire le contenu qui sera enregistré. Une interface graphique dans Positron ou RStudio peut aider, mais les questions restent les mêmes.
| Intention | Terminal | RStudio | Positron |
|---|---|---|---|
| Voir l’état | git status |
Onglet Git: fichiers affichés |
Vue Source Control: liste Changes |
| Lire les changements | git diff |
Sélectionner un fichier puis Diff |
Cliquer le fichier dans Changes |
| Préparer un fichier | git add fichier |
Cocher le fichier dans l’onglet Git ou la fenêtre Commit | Cliquer le + du fichier pour le placer dans Staged Changes |
| Enregistrer | git commit -m “message” |
Commit, message, puis Commit dans la fenêtre |
Écrire le message, puis cliquer Commit |
| Envoyer | git push |
Bouton Push |
… puis Push, ou Sync Changes |
| Récupérer | git pull –ff-only |
Bouton Pull |
… puis Pull, ou Sync Changes |
Les interfaces ne remplacent pas Git: elles exécutent les mêmes opérations. Sync Changes effectue un pull puis un push; il n’est pas une vérification neutre de l’état.
Dans le projet RStudio, ouvrir l’onglet Git, généralement dans le panneau supérieur droit.
Sélectionner un fichier, puis cliquer Diff pour lire les changements avant de les enregistrer.
Cocher uniquement les fichiers à inclure. Cliquer Commit.
Dans la fenêtre « Review Changes », vérifier les fichiers cochés, écrire le message, puis cliquer Commit.
Une fois le commit créé localement, cliquer Push dans l’onglet Git ou le menu Git.
Utiliser Pull avant de commencer un bloc de travail collaboratif, seulement si l’état local est compris.
Si l’onglet Git n’apparaît pas, vérifier que le dossier a été ouvert comme projet RStudio et que Git est installé et reconnu par RStudio.
Cliquer l’icône Source Control dans la barre d’activité à gauche.
Si le dossier n’est pas encore un dépôt Git, cliquer Initialize Repository. S’il est déjà cloné, les fichiers apparaissent sous Changes.
Cliquer un fichier dans Changes pour ouvrir le diff.
Cliquer le + près du fichier à inclure. Il se déplace vers Staged Changes. Ne pas tout préparer automatiquement sans avoir relu.
Écrire un message dans la boîte de message de commit, puis cliquer Commit.
Pour une seule direction, ouvrir … et choisir Push ou Pull. Sync Changes combine les deux opérations.
Dans Positron, ne pas utiliser le bouton d’étincelles pour générer le message de commit dans ce premier exercice: le message doit expliquer votre propre décision.
git statusgit addgit diff –stagedgit commitCe cycle crée un historique local. La synchronisation avec GitHub vient ensuite.
Git ne commit pas automatiquement tous les changements. La zone d’index, souvent appelée staging area, permet de choisir ce qui entre dans le prochain commit.
Cette étape intermédiaire aide à éviter les commits qui mélangent une correction, une figure temporaire et un fichier sensible.
Supposons qu’un script lisait un fichier par un chemin propre à votre ordinateur.
Un historique lisible peut distinguer:
Ajouter la première importation des observations;Corriger le chemin de donnees pour le rendre portable;Verifier le rendu du rapport depuis la racine du projet.La troisième étape est importante: un changement qui paraît plausible doit être exécuté et vérifié.
Après un ou plusieurs commits locaux, GitHub permet de mettre une copie du dépôt à distance et de travailler autour de cette copie.
Avant un travail collaboratif, récupérer l’état partagé lorsque le dépôt est déjà configuré:
Si cette dernière commande échoue, ne pas forcer une correction au hasard. Lire le message, conserver le travail local et demander de l’aide avec l’état observé.
Un dépôt désorganisé reste désorganisé après un git push.
Une pull request propose de faire entrer des changements d’une branche dans une autre, souvent vers main. Elle sert à montrer le diff, discuter les choix et relire avant l’intégration.
Au premier cours, l’objectif est de reconnaître ce cycle. Nous le pratiquerons progressivement; il n’est pas attendu que tout le monde maîtrise les branches aujourd’hui.
| Partie | Question utile |
|---|---|
| Titre et description | Quel problème est traité? Quelle décision est proposée? |
| Commits | Les étapes sont-elles ciblées et lisibles? |
| Fichiers modifiés | Le changement est-il limité à ce qui est nécessaire? |
| Diff | Chaque ligne ajoutée ou retirée est-elle justifiée? |
| Checks | Quelles vérifications automatiques ont réussi ou échoué? |
| Discussion | Les commentaires reçoivent-ils une réponse claire? |
Une pull request n’est pas une formalité. C’est un objet de communication et de contrôle de qualité.
fix sans contexte.Un conflit apparaît lorsque Git ne peut pas décider seul comment combiner deux modifications incompatibles. Par exemple, deux personnes ont modifié la même ligne dans des directions différentes.
Avant chaque commit, vérifier les noms et le contenu des fichiers ajoutés.
.gitignore pour les fichiers locaux ou générés;git status et git diff –staged;GitHub ne peut pas retirer la responsabilité de vérifier ce qui est partagé.
Le cours peut demander une invitation à un dépôt ou à une organisation. Accepter seulement une invitation liée au cours et vérifier son origine avant de l’accepter.
Le portfolio du cours n’est pas une galerie de résultats parfaits. C’est une trace de travail que vous pourrez expliquer.
Les commits rendent visibles les étapes et les corrections.
Le README et les journaux expliquent la structure et les choix.
Les scripts, chemins et rapports permettent de relancer le travail.
Une belle visualisation sans code, sans données documentées ni procédure de reproduction ne suffit pas à démontrer le travail réalisé.
Aujourd’hui, l’objectif réaliste est de cloner le dépôt privé attribué, d’y créer une première trace personnelle et de comprendre son état.
portfolio-stt4230-IDUL ou portfolio-stt6230-IDUL.
Si le clonage bloque, ne pas créer un dépôt parallèle. Consigner la commande, le message complet, le compte GitHub utilisé et l’IDUL attendu. Si seul l’envoi bloque après le clonage, les commits locaux demeurent valables.
À la fin de la démonstration, vous devez pouvoir répondre:
Une bonne demande d’aide contient des faits vérifiables.
Contexte: ce que j’essayais de faire
Commande exécutée: la commande exacte
Résultat: le message complet, sans secret
État du dépôt: sortie de git status
Ce que j’ai déjà essayé: une ou deux actions précises
Éviter les diagnostics vagues comme « Git ne marche pas ». Une erreur précise est un point de départ utile pour la personne qui aide.
Il enregistre l’histoire du projet sur votre ordinateur. Les commits peuvent exister avant GitHub.
Il héberge une copie distante et fournit des outils pour partager, relire et discuter.
git status
Lire l’état avant d’ajouter, committer, pousser ou corriger.
Séparer les intentions et écrire un message que vous comprendrez plus tard.
Les notions de contrôle de version et de cycle des fichiers suivent Pro Git. Les définitions et le déroulement des pull requests suivent la documentation GitHub consultée le 18 août 2026. La ressource Happy Git est particulièrement adaptée au travail avec R.
STT-4230 / STT-6230 · Université Laval