{"id":6484,"date":"2025-08-11T10:18:34","date_gmt":"2025-08-11T10:18:34","guid":{"rendered":"https:\/\/techhub.saworks.io\/docs\/tutoriel-github-intermediaire\/principes-fondamentaux-de-github-notions-de-base-sur-ladministration-et-fonctionnalites-du-produit-partie-1-sur-2\/composants-du-github-flow\/"},"modified":"2025-09-24T12:02:33","modified_gmt":"2025-09-24T12:02:33","slug":"composants-du-github-flow","status":"publish","type":"docs","link":"https:\/\/techhub.saworks.io\/fr\/docs\/tutoriel-github-intermediaire\/principes-fondamentaux-de-github-notions-de-base-sur-ladministration-et-fonctionnalites-du-produit-partie-1-sur-2\/composants-du-github-flow\/","title":{"rendered":"Composants du GitHub Flow"},"content":{"rendered":"\n<div class=\"wp-block-group is-layout-constrained wp-block-group-is-layout-constrained\">\n<p>Dans cette unit\u00e9, nous passons en revue les composants suivants du GitHub Flow :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Branches<\/strong><\/li>\n\n\n\n<li><strong>Commits<\/strong><\/li>\n\n\n\n<li><strong>Pull Requests<\/strong><\/li>\n\n\n\n<li><strong>Le GitHub Flow<\/strong><\/li>\n<\/ul>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83c\udf3f Qu\u2019est-ce qu\u2019une branche ?<\/h3>\n\n\n\n<p>Dans la section pr\u00e9c\u00e9dente, nous avons cr\u00e9\u00e9 un nouveau fichier et une nouvelle branche dans votre d\u00e9p\u00f4t.<\/p>\n\n\n\n<p>Les&nbsp;<strong>branches<\/strong>&nbsp;sont essentielles dans GitHub car elles permettent de&nbsp;<strong>faire des modifications sans impacter le projet principal<\/strong>.<br>C\u2019est un espace s\u00e9curis\u00e9 pour exp\u00e9rimenter de nouvelles fonctionnalit\u00e9s ou corriger des bugs.<br>En cas d\u2019erreur, vous pouvez annuler ou corriger vos changements.<br>Les modifications ne sont appliqu\u00e9es \u00e0 la branche principale qu\u2019apr\u00e8s une&nbsp;<strong>fusion (merge)<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<div class=\"wp-block-group has-background is-layout-constrained wp-block-group-is-layout-constrained\" style=\"background-color:#fcb90054\">\n<h3 class=\"wp-block-heading\">\ud83d\udca1&nbsp;<strong>Astuce<\/strong><\/h3>\n\n\n\n<p>Vous pouvez aussi cr\u00e9er et basculer vers une nouvelle branche via le terminal avec la commande :<br><code>git checkout -b nomNouvelleBranche<\/code><\/p>\n<\/div>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcdd Qu\u2019est-ce qu\u2019un commit ?<\/h3>\n\n\n\n<p>Dans l\u2019unit\u00e9 pr\u00e9c\u00e9dente, vous avez ajout\u00e9 un fichier au d\u00e9p\u00f4t en&nbsp;<strong>poussant un commit<\/strong>.<\/p>\n\n\n\n<p>Un&nbsp;<strong>commit<\/strong>&nbsp;est une&nbsp;<strong>modification apport\u00e9e \u00e0 un ou plusieurs fichiers<\/strong>&nbsp;sur une branche.<br>Chaque commit re\u00e7oit un&nbsp;<strong>identifiant unique<\/strong>, est&nbsp;<strong>horodat\u00e9<\/strong>, et&nbsp;<strong>attribu\u00e9 \u00e0 un contributeur<\/strong>.<br>Les commits permettent de&nbsp;<strong>suivre l\u2019historique<\/strong>&nbsp;des fichiers et de fournir une&nbsp;<strong>tra\u00e7abilit\u00e9 claire<\/strong>&nbsp;pour les r\u00e9visions, les issues ou les pull requests.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" data-src=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/08\/2-commits-2.png\" alt=\"\" class=\"wp-image-6487 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 758px; --smush-placeholder-aspect-ratio: 758\/344;\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udcc1 \u00c9tats des fichiers dans un d\u00e9p\u00f4t Git<\/h3>\n\n\n\n<p>Dans un d\u00e9p\u00f4t Git, un fichier peut passer par plusieurs&nbsp;<strong>\u00e9tats valides<\/strong>&nbsp;au cours du processus de gestion de version. Les deux \u00e9tats principaux sont :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Non suivi (Untracked)<\/strong>&nbsp;:<br>\u00c9tat initial d\u2019un fichier qui n\u2019est pas encore pris en compte par Git. Git ignore son existence.<\/li>\n\n\n\n<li><strong>Suivi (Tracked)<\/strong>&nbsp;:<br>Fichier que Git surveille activement. Il peut \u00eatre dans l\u2019un des sous-\u00e9tats suivants :\n<ul class=\"wp-block-list\">\n<li><strong>Non modifi\u00e9 (Unmodified)<\/strong>&nbsp;: Le fichier n\u2019a pas \u00e9t\u00e9 modifi\u00e9 depuis le dernier commit.<\/li>\n\n\n\n<li><strong>Modifi\u00e9 (Modified)<\/strong>&nbsp;: Le fichier a \u00e9t\u00e9 chang\u00e9, mais les modifications ne sont pas encore pr\u00eates pour le commit.<\/li>\n\n\n\n<li><strong>Pr\u00e9par\u00e9 (Staged)<\/strong>&nbsp;: Les modifications ont \u00e9t\u00e9 ajout\u00e9es \u00e0 la zone de pr\u00e9paration (index) et sont pr\u00eates \u00e0 \u00eatre valid\u00e9es.<\/li>\n\n\n\n<li><strong>Valid\u00e9 (Committed)<\/strong>&nbsp;: Le fichier est enregistr\u00e9 dans la base de donn\u00e9es du d\u00e9p\u00f4t, repr\u00e9sentant la derni\u00e8re version valid\u00e9e.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n\n\n\n<p>Ces \u00e9tats sont essentiels pour collaborer efficacement en \u00e9quipe et suivre l\u2019\u00e9volution de chaque commit dans le projet.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h3 class=\"wp-block-heading\">\ud83d\udd04 Qu\u2019est-ce qu\u2019une&nbsp;<em>pull request<\/em>&nbsp;?<\/h3>\n\n\n\n<p>Une&nbsp;<strong>pull request<\/strong>&nbsp;est le m\u00e9canisme utilis\u00e9 pour signaler que les commits d\u2019une branche sont pr\u00eats \u00e0 \u00eatre fusionn\u00e9s dans une autre branche.<\/p>\n\n\n\n<p>Le membre de l\u2019\u00e9quipe qui soumet la pull request demande \u00e0 un ou plusieurs&nbsp;<strong>relecteurs<\/strong>&nbsp;de v\u00e9rifier le code et d\u2019approuver la fusion.<br>Ces relecteurs peuvent commenter les modifications, proposer des ajustements ou utiliser la pull request pour discuter davantage.<\/p>\n\n\n\n<p>Une fois les modifications approuv\u00e9es (si n\u00e9cessaire), la branche source (branche de comparaison) est&nbsp;<strong>fusionn\u00e9e dans la branche de base<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-full\"><img decoding=\"async\" data-src=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/08\/2-pull-request-2.png\" alt=\"\" class=\"wp-image-6489 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1003px; --smush-placeholder-aspect-ratio: 1003\/658;\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Maintenant que nous connaissons tous les \u00e9l\u00e9ments, passons en revue le&nbsp;<strong>GitHub Flow<\/strong>.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" data-src=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/08\/2-branching-2-1024x327.png\" alt=\"\" class=\"wp-image-6491 lazyload\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/327;\" \/><\/figure>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<p>Le GitHub Flow peut \u00eatre d\u00e9fini comme un&nbsp;<strong>flux de travail l\u00e9ger<\/strong>&nbsp;qui permet une&nbsp;<strong>exp\u00e9rimentation en toute s\u00e9curit\u00e9<\/strong>.<\/p>\n\n\n\n<p>Vous pouvez tester de nouvelles id\u00e9es et collaborer avec votre \u00e9quipe en utilisant les&nbsp;<strong>branches<\/strong>, les&nbsp;<strong>pull requests<\/strong>&nbsp;et les&nbsp;<strong>fusions<\/strong>.<\/p>\n\n\n\n<p>Maintenant que nous connaissons les bases de GitHub, parcourons les \u00e9tapes du GitHub Flow :<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Cr\u00e9ez une branche<\/strong>&nbsp;pour que les modifications, fonctionnalit\u00e9s ou corrections n\u2019affectent pas la branche principale.<\/li>\n\n\n\n<li><strong>Faites vos modifications<\/strong>. Il est recommand\u00e9 de d\u00e9ployer les changements sur la branche de fonctionnalit\u00e9 avant de fusionner dans la branche principale, afin de valider leur bon fonctionnement en production.<\/li>\n\n\n\n<li><strong>Cr\u00e9ez une pull request<\/strong>&nbsp;pour demander des retours \u00e0 vos collaborateurs. Certaines \u00e9quipes exigent une validation avant de permettre la fusion.<\/li>\n\n\n\n<li><strong>Analysez et appliquez les retours<\/strong>&nbsp;de vos collaborateurs.<\/li>\n\n\n\n<li>Une fois satisfait des modifications,&nbsp;<strong>faites approuver la pull request<\/strong>&nbsp;et&nbsp;<strong>fusionnez-la dans la branche principale<\/strong>.<\/li>\n\n\n\n<li>Enfin,&nbsp;<strong>supprimez votre branche<\/strong>&nbsp;pour indiquer que le travail est termin\u00e9 et \u00e9viter toute utilisation accidentelle.<\/li>\n<\/ol>\n\n\n\n<p>\ud83c\udf89 Et voil\u00e0, vous avez compl\u00e9t\u00e9 un cycle du GitHub Flow !<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dans cette unit\u00e9, nous passons en revue les composants suivants du GitHub Flow : \ud83c\udf3f Qu\u2019est-ce qu\u2019une branche ? Dans la section pr\u00e9c\u00e9dente, [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":6423,"menu_order":17,"comment_status":"closed","ping_status":"closed","template":"","doc_tag":[],"doc_badge":[],"class_list":["post-6484","docs","type-docs","status-publish","hentry"],"author_avatar":"https:\/\/secure.gravatar.com\/avatar\/6a70e7c73db9f245e650948d09d74f61?s=96&d=mm&r=g","author_name":"Annick N'dri","_links":{"self":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/6484"}],"collection":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs"}],"about":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/types\/docs"}],"author":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/comments?post=6484"}],"version-history":[{"count":0,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/6484\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/6423"}],"wp:attachment":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/media?parent=6484"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/doc_tag?post=6484"},{"taxonomy":"doc_badge","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/doc_badge?post=6484"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}