Versioning avec Git & GitHub
Construire un historique exploitable, restaurer sans perdre le contrôle, collaborer par revue et livrer un dépôt d’infrastructure avec CI, release et hygiène de sécurité.
Objectifs
- Distinguer Git d'une plateforme comme GitHub
- Créer, examiner et restaurer un historique
- Utiliser branches, merge et rebase avec discernement
- Collaborer avec remotes, pull requests et revues
- Préparer tags, releases et preuves de livraison
- Appliquer une hygiène de dépôt adaptée aux infrastructures
- Diagnostiquer un check CI en échec
- Traiter une exposition de secret sans confondre révocation et réécriture
Notions abordées
- 01Dépôt, index et commit
- 02Historique, diff et restauration
- 03Dépôts distants et authentification
- 04Branches, merge et rebase
- 05Conflits et stratégies d'intégration
- 06Pull requests, issues et code review
- 07Protections de branche et règles de fusion
- 08Tags, releases et checksums
- 09Gitignore, secrets et réécriture d'historique
- 10Fichiers volumineux, Git LFS et artefacts
- 11CI et diagnostic d'échec
Compétences
- Versionner un projet
- Collaborer en équipe
- Restaurer une version
- Examiner une modification
- Gouverner un dépôt de livraison
- Préparer une release vérifiable
- Diagnostiquer un échec CI
Outils
Cours
Leçons de la matière
26 leçon(s) déjà reliée(s) à cette matière. Le contenu reste accessible librement, dans l’ordre proposé ou à la carte.
- 01→
Distingue Git, GitHub et les trois zones de travail
Construis un modèle mental précis du working tree, de l’index et du repository avant de mémoriser des commandes.
- 02→
Installe, configure et initialise Git
Vérifie l’outil, configure une identité adaptée au contexte et initialise un dépôt avec une branche principale explicite.
- 03→
Observe les changements et prépare précisément l’index
Lis status et diff, distingue fichiers suivis et non suivis, puis sélectionne exactement le contenu du prochain commit.
- 04→
Crée des commits atomiques et lisibles
Transforme un index contrôlé en historique exploitable avec une intention unique, un message précis et une vérification avant/après.
- 05→
Lis l’historique, les diffs et les objets commit
Parcours un historique, inspecte un commit, compare deux états et retrouve la modification qui a introduit une ligne.
- 06→
Restaure un fichier du working tree ou de l’index
Choisis la bonne source et la bonne destination pour annuler une modification locale sans confondre working tree, index et commit.
- 07→
Compare reset soft, mixed et hard dans un laboratoire isolé
Observe séparément le déplacement de HEAD, l’état de l’index et le contenu du working tree pour chaque mode de reset.
- 08→
Annule un commit partagé avec revert
Crée un nouveau commit inverse au lieu de réécrire l’historique déjà publié.
- 09→
Retrouve un état perdu avec reflog et les références
Observe les déplacements locaux de HEAD, retrouve un commit devenu inaccessible et crée une branche de récupération.
- 10→
Maîtrise gitignore, les fichiers suivis et les secrets
Écris des règles d’ignore vérifiables, arrête de suivre un fichier généré et distingue prévention, retrait et rotation d’un secret.
- 11→
Crée, nomme et parcours des branches
Comprends qu’une branche est une référence mobile, crée des branches courtes et vérifie précisément leur divergence.
- 12→
Fusionne en fast-forward ou avec un merge commit
Compare deux formes d’intégration, inspecte le graphe obtenu et choisis explicitement la forme d’historique attendue.
- 13→
Résous un conflit de contenu avec preuves avant et après
Observe les trois versions d’un fichier en conflit, choisis une résolution métier et vérifie qu’aucun marqueur ne subsiste.
- 14→
Rebase une branche locale et comprends la réécriture
Rejoue des commits privés sur une nouvelle base, compare les anciens et nouveaux identifiants et vérifie un historique linéaire.
- 15→
Conçois une stratégie de branches adaptée à une petite équipe
Définis le rôle de main, dev, feature et release, limite la durée de vie des branches et formalise les conditions de fusion.
- 16→
Comprends remote, fetch, pull, push et upstream
Relie un dépôt local à un dépôt distant, distingue les références locales des références distantes et synchronise sans fusion implicite incontrôlée.
- 17→
Authentifie Git sans exposer de secret
Choisis HTTPS, SSH ou GitHub CLI, vérifie les helpers de credentials et évite les tokens dans les URL, l’historique et les journaux.
- 18→
Publie une branche et ouvre une pull request
Prépare une branche révisable, vérifie son diff, publie-la avec upstream et ouvre une pull request qui explique intention, validation et rollback.
- 19→
Relis un diff, commente et traite une revue
Examine le changement avant son auteur, distingue question, suggestion et blocage, puis réponds à la revue avec des commits et preuves traçables.
- 20→
Utilise issues, protections de branche et règles de fusion
Transforme un besoin en issue vérifiable, protège les branches sensibles et définis des règles de fusion cohérentes avec staging, production et CI.
- 21→
Crée des tags annotés et prépare une release
Fige un commit validé avec un tag annoté, produis des notes et artefacts vérifiables, puis distingue clairement tag Git et release GitHub.
- 22→
Retire un secret et comprends les limites de la réécriture
Traite l’exposition comme un incident, révoque avant de nettoyer, réécris les références concernées et coordonne les clones, forks et caches.
- 23→
Gère fichiers volumineux, binaires et artefacts
Décide ce qui appartient à l’historique, ignore les sorties reproductibles et utilise un stockage d’artefacts ou Git LFS seulement lorsqu’un binaire doit réellement être versionné.
- 24→
Déclenche une CI minimale et diagnostique un check en échec
Transforme les critères du dépôt en commandes reproductibles, exécute-les localement et dans GitHub Actions, puis localise l’étape et la preuve d’un échec.
- 25→
Projet final — gère le dépôt d’infrastructure d’une PME
Livre un dépôt gouverné de bout en bout : issue, branche, commits, revue, CI, fusion, release, rollback, secret hygiene et preuves d’acceptation.
- 26→
Phase 4 (2/3) — Le code : Git & GitHub
Tes images sont dans Harbor, mais le code d'où elles viennent vit « en vrac » sur une VM. On met en place une machine de management, Git, et GitHub comme dépôt central.
Dans les formations
Référence source
Versioning avec Git/Github
- Code
- 01FS07356
- Programme
- Bachelor année 1 — RNCP39103BC04
- Volume d’origine
- 12 heures
- ECTS d’origine
- 1
Le contenu SORIA ajoute les pratiques de revue, gouvernance, release, CI, gestion d’artefacts et réponse à l’exposition de secrets.