Retour aux cours
AI016 Professional

Tutoriel Git de Ry

Un guide complet sur le contrôle de version Git, passant des workflows de base comme l'étagement et les validations aux sujets avancés tels que le rebasage interactif, la collaboration à distance et le fonctionnement interne de la base de données d'objets Git.

4.9
39.0h
983 étudiants
0 j'aime
Intelligence Artificielle
Commencer à apprendre

Aperçu du cours

📚 Résumé du contenu

Un guide complet sur le contrôle de version Git, allant des workflows de base comme l'étagement et les validations aux sujets avancés tels que le rebasage interactif, la collaboration à distance et le fonctionnement interne de la base de données d'objets Git.

Maîtrisez le système de contrôle de version le plus populaire au monde, des commandes aux concepts fondamentaux.

Auteur : Ryan Hodson

Remerciements : Aucun mention explicite dans la préface.

🎯 Objectifs d'apprentissage

  1. Comparer et contraster les systèmes de contrôle de version local, centralisé et distribué.
  2. Identifier les motivations historiques derrière la création de Git pour le noyau Linux.
  3. Effectuer une installation de base de Git, incluant la vérification de l'installation, l'initialisation d'un dépôt et le suivi des fichiers.
  4. Initialiser un dépôt Git et identifier le rôle du répertoire .git.
  5. Configurer les paramètres utilisateur globaux et suivre les fichiers projet via la zone de staging.
  6. Exécuter des validations pour créer des instantanés du projet et les examiner via l'historique du dépôt.
  7. Accéder à des commits historiques spécifiques à l'aide d'identifiants et revenir à l'état actuel du projet.
  8. Créer et gérer des balises annotées pour identifier les versions stables de publication.
  9. Appliquer git revert pour annuler des modifications validées spécifiques tout en préservant un historique transparent.
  10. Identifier, créer et basculer entre des branches en utilisant la ligne de commande Git.

🔹 Leçon 1 : Histoire et fondamentaux du contrôle de version

Aperçu : Cette leçon retrace l'évolution du contrôle de version, passant du suivi manuel des fichiers à des systèmes sophistiqués distribués. Elle détaille les différences architecturales entre les systèmes de contrôle de version locaux, centralisés et distribués (VCS) et explique le contexte historique spécifique qui a mené à la création de Git. Les étudiants apprendront également les étapes fondamentales d'installation de Git et d'initialisation de leur premier dépôt.

Résultats d'apprentissage :

  • Comparer et contraster les systèmes de contrôle de version local, centralisé et distribué.
  • Identifier les motivations historiques derrière la création de Git pour le noyau Linux.
  • Effectuer une installation de base de Git, incluant la vérification de l'installation, l'initialisation d'un dépôt et le suivi des fichiers.

🔹 Leçon 2 : Maîtrise des bases : étagement et validation

Aperçu : Cette leçon couvre le cycle de vie fondamental d'un dépôt Git, passant d'un dossier de projet standard à un environnement contrôlé par version. Les étudiants apprendront à initialiser des dépôts, configurer leur identité utilisateur, suivre de nouveaux fichiers et gérer la transition des modifications à travers la zone de staging vers un historique permanent validé.

Résultats d'apprentissage :

  • Initialiser un dépôt Git et identifier le rôle du répertoire .git.
  • Configurer les paramètres utilisateur globaux et suivre les fichiers projet via la zone de staging.
  • Exécuter des validations pour créer des instantanés du projet et les examiner via l'historique du dépôt.

🔹 Leçon 3 : Annuler des modifications et naviguer dans l'historique

Aperçu : Cette leçon aborde les techniques essentielles de Git pour voyager dans le temps au sein d'un dépôt, permettant aux développeurs d'inspecter des états antérieurs, marquer des jalons et corriger en toute sécurité les erreurs. Les apprenants maîtriseront la capacité à visualiser des révisions anciennes sans modification permanente, utiliser des balises annotées pour désigner les versions de publication, et distinguer entre l'annulation de l'historique validé et le nettoyage du travail expérimental non validé.

Résultats d'apprentissage :

  • Accéder à des commits historiques spécifiques à l'aide d'identifiants et revenir à l'état actuel du projet.
  • Créer et gérer des balises annotées pour identifier les versions stables de publication.
  • Appliquer git revert pour annuler des modifications validées spécifiques tout en préservant un historique transparent.

🔹 Leçon 4 : Branches essentielles et fusion basique

Aperçu : Cette leçon couvre le cycle de vie fondamental des branches Git, passant de la conceptualisation des branches comme lignes de développement indépendantes à leur exécution concrète. Les étudiants apprendront à créer, naviguer et visualiser des historiques de projet bifurqués, aboutissant à l'intégration du travail via des fusion rapides (fast-forward) et des fusion tripartites (3-way), suivie du nettoyage des branches temporaires.

Résultats d'apprentissage :

  • Identifier, créer et basculer entre des branches en utilisant la ligne de commande Git.
  • Interpréter les diagrammes d'historique de projet bifurqué pour comprendre la relation entre master et les branches fonctionnelles.
  • Exécuter et distinguer entre les "fusions rapides" (fast-forward) et les "fusions tripartites" (3-way).

🔹 Leçon 5 : Branches avancées et résolution des conflits

Aperçu : Cette leçon explore les opérations Git avancées nécessitées par des historiques de projet divergents. Elle couvre les mécanismes théoriques des fusions tripartites, l'utilisation pratique de l'option -a pour simplifier les validations, et la gestion des branches fonctionnelles à long terme. Les étudiants apprendront à naviguer dans les interactions complexes entre branches, résoudre manuellement les conflits de fusion et maintenir un dépôt propre grâce à un nettoyage approprié des branches.

Résultats d'apprentissage :

  • Expliquer la différence structurelle entre une fusion rapide et une fusion tripartite.
  • Utiliser l'option -a pour combiner l'étagement et la validation pour les fichiers suivis.
  • Identifier et résoudre les conflits de fusion en interprétant les marqueurs de conflit Git.

🔹 Leçon 6 : Rebasing pour un historique linéaire du projet

Aperçu : Cette leçon couvre les techniques utilisées pour maintenir un historique de projet propre et linéaire en déplaçant et en condensant les commits. Les apprenants maîtriseront la transition des branches divergentes vers une chronologie unifiée en utilisant le rebasage standard, le rebasage interactif (squashing) et la possibilité de modifier des commits spécifiques pendant le processus. À la fin de ce module, les étudiants comprendront comment supprimer les commits de fusion inutiles et présenter un journal de commits professionnel et optimisé.

Résultats d'apprentissage :

  • Déplacer la base d'une branche fonctionnelle vers le sommet d'une autre branche pour permettre des fusions rapides.
  • Utiliser le rebasage interactif pour condenser (squash) plusieurs petits commits en instantanés uniques et significatifs.
  • Modifier des commits existants lors d'un rebasage à l'aide des fonctionnalités edit et --amend.

🔹 Leçon 7 : Réécriture de l'historique et sécurité du Reflog

Aperçu : Cette leçon explore des techniques avancées de Git pour maintenir un historique de projet propre et professionnel. Les apprenants maîtriseront le "Rebasage interactif" pour réécrire des commits passés, apprendront le flux de travail précis pour diviser des commits génériques en mises à jour granulaires, et utiliseront le "Reflog" comme filet de sécurité puissant pour récupérer des données perdues.

Résultats d'apprentissage :

  • Effectuer un rebasage interactif pour modifier, éditer ou diviser des commits historiques.
  • Découper un seul commit générique en plusieurs commits indépendants et significatifs à l'aide de git reset --mixed.
  • Naviguer dans le Reflog Git pour identifier et restaurer des "commits pendus" qui ne sont plus liés à une branche.

🔹 Leçon 8 : Collaboration via push et fetch

Aperçu : Cette leçon explore les workflows fondamentaux de collaboration multi-utilisateurs dans Git. Vous apprendrez à créer des clones indépendants de dépôts, configurer des identités locales pour simuler différents utilisateurs, et établir des connexions "distantes" pour échanger du code. La leçon se concentre sur les mécanismes de récupération des données (fetch) et de transmission des données (push) entre dépôts afin de synchroniser les efforts de développement.

Résultats d'apprentissage :

  • Cloner et configurer : Dupliquer avec succès un dépôt et définir les configurations utilisateur au niveau local.
  • Synchroniser les distants : Ajouter des repères distants et utiliser fetch et merge pour intégrer les modifications d'autres développeurs.
  • Gérer l’état distant : Naviguer dans les branches distantes et comprendre l’état "HEAD détaché" lors de l’inspection du code non local.

🔹 Leçon 9 : Modèle de dépôt partagé centralisé

Aperçu : Cette leçon couvre la transition du partage pair-à-pair de dépôts vers un workflow centralisé. Les étudiants apprendront à créer un dépôt "nu" servant de hub de communication, à réconfigurer les références distantes pour un environnement d’équipe, et à gérer la synchronisation des modifications (push et pull) entre plusieurs développeurs afin de maintenir un historique de projet cohérent.

Résultats d'apprentissage :

  • Initialiser et configurer un dépôt nu pour servir de serveur central.
  • Gérer les connexions distantes afin de rediriger les workflows locaux vers un hub centralisé.
  • Exécuter un workflow standardisé pour mettre à jour le contenu partagé et résoudre les historiques divergents à l’aide de fetch, rebase et merge.

🔹 Leçon 10 : Modèle intégrateur distribué

Aperçu : Cette leçon explore la transition du contrôle de version centralisé vers le modèle intégrateur distribué en utilisant Bitbucket comme fournisseur d’hébergement. Les apprenants passeront de la configuration d’un dépôt public à la gestion d’un workflow sophistiqué où un "Intégrateur" examine et intègre les contributions des dépôts publics des développeurs pairs dans une version officielle du projet.

Résultats d'apprentissage :

  • Configurer un compte Bitbucket et établir un dépôt distant public pour la collaboration distribuée.
  • Exécuter le "Workflow d’intégrateur" en gérant plusieurs références distantes pour récupérer, examiner et fusionner des contributions externes.
  • Maintenir la synchronisation entre les environnements locaux privés et les dépôts visibles publiquement au sein d’une équipe de développeurs.

🔹 Leçon 11 : Communication et workflows basés sur les patches

Aperçu : Cette leçon couvre le cycle de vie de la collaboration basée sur les patches dans Git, une méthode utilisée pour partager des commits individuels entre développeurs sans nécessiter un accès partagé à un dépôt central. Les étudiants apprendront à générer des fichiers patch à partir de commits locaux, à les distribuer par courriel, et à intégrer les patches entrants dans la branche principale du projet.

Résultats d'apprentissage :

  • Générer des fichiers patch individuels à partir de commits ou de branches spécifiques à l’aide de git format-patch.
  • Appliquer des fichiers patch externes à un dépôt local à l’aide de la commande git am et de redirection d’entrée standard.
  • Exécuter un flux complet d’intégration, y compris le test des patches sur des branches temporaires et leur fusion dans la branche master.

🔹 Leçon 12 : Outils Git, hooks et diff avancés

Aperçu : Cette leçon couvre les commandes utilitaires Git essentielles et les techniques de personnalisation pour une gestion avancée des dépôts. Les étudiants apprendront à exporter et partager des dépôts par archivage et regroupement, à maintenir un espace de travail propre grâce à .gitignore et au stash, à automatiser les workflows via les hooks Git, et à optimiser leur expérience en ligne de commande avec des comparaisons diff avancées et des alias personnalisés.

Résultats d'apprentissage :

  • Différencier et exécuter des exports de dépôt via l'archivage (sans historique) et le regroupement (avec historique complet).
  • Configurer des modèles d'exclusion de fichiers et gérer les modifications en cours de travail temporairement.
  • Implémenter des scripts d'automatisation dans le système interne de hooks Git et rationaliser les workflows à l’aide d’alias de configuration.

🔹 Leçon 13 : Git Plumbing : la base de données interne d'objets

Aperçu : Cette leçon plonge sous les commandes conviviales de Git ("porcelaine") pour explorer son "plumbing" — la base de données d'objets de bas niveau. Vous apprendrez comment Git utilise quatre types d'objets distincts (Blobs, Trees, Commits, Tags) et des sommes de contrôle SHA-1 pour enregistrer l'historique du projet. À la fin de ce module, vous comprendrez comment manipuler manuellement l'index et la base de données d'objets pour créer des commits sans passer par l'interface haut-niveau standard.

Résultats d'apprentissage :

  • Définir et distinguer les quatre types d'objets Git : Blobs, Trees, Commits et Tags.
  • Expliquer le rôle de HEAD et des références de branche dans le pointage vers des objets de commit spécifiques.
  • Démontrer le flux "plumbing" : étager manuellement des fichiers, écrire des arbres et créer des objets de commit.