{"id":5378,"date":"2025-07-23T15:34:41","date_gmt":"2025-07-23T15:34:41","guid":{"rendered":"https:\/\/techhub.saworks.io\/docs\/tutoriel-github\/gerer-le-controle-de-version\/composants-du-github-flow\/"},"modified":"2025-07-25T15:57:37","modified_gmt":"2025-07-25T15:57:37","slug":"composants-du-github-flow","status":"publish","type":"docs","link":"https:\/\/techhub.saworks.io\/fr\/docs\/tutoriel-github\/gerer-le-controle-de-version\/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&nbsp;<strong>GitHub Flow<\/strong>&nbsp;:<\/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<\/ul>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>Qu\u2019est-ce qu\u2019une branche ?<\/strong><\/h3>\n\n\n\n<p>Dans la section pr\u00e9c\u00e9dente, nous avons cr\u00e9\u00e9 un&nbsp;<strong>nouveau fichier<\/strong>&nbsp;et une&nbsp;<strong>nouvelle branche<\/strong>&nbsp;dans votre d\u00e9p\u00f4t.<\/p>\n\n\n\n<p>Les&nbsp;<strong>branches<\/strong>&nbsp;sont un \u00e9l\u00e9ment essentiel de l\u2019exp\u00e9rience GitHub, car elles permettent d\u2019apporter des modifications&nbsp;<strong>sans affecter l\u2019ensemble du projet<\/strong>.<\/p>\n\n\n\n<p>Votre branche est un&nbsp;<strong>espace s\u00e9curis\u00e9<\/strong>&nbsp;pour exp\u00e9rimenter de nouvelles fonctionnalit\u00e9s ou corriger des bugs.<br>Si vous faites une erreur, vous pouvez&nbsp;<strong>annuler vos modifications<\/strong>&nbsp;ou&nbsp;<strong>en pousser de nouvelles<\/strong>&nbsp;pour corriger l\u2019erreur.<br>Vos modifications&nbsp;<strong>ne seront pas appliqu\u00e9es \u00e0 la branche par d\u00e9faut<\/strong>&nbsp;tant que vous n\u2019aurez pas fusionn\u00e9 votre branche.<\/p>\n\n\n\n<div class=\"wp-block-group has-background is-layout-constrained wp-block-group-is-layout-constrained\" style=\"border-width:1px;border-radius:15px;background-color:#9b51e04d\">\n<p><strong>Remarque<\/strong><\/p>\n\n\n\n<p>Vous pouvez \u00e9galement cr\u00e9er une nouvelle branche et vous y positionner en utilisant Git dans un 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\"><strong>Qu\u2019est-ce qu\u2019un commit ?<\/strong><\/h3>\n\n\n\n<p>Dans l\u2019unit\u00e9 pr\u00e9c\u00e9dente, vous avez ajout\u00e9 un nouveau fichier au d\u00e9p\u00f4t en effectuant un&nbsp;<strong>commit<\/strong>.<br>Voyons bri\u00e8vement ce qu\u2019est un commit.<\/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>, et est&nbsp;<strong>enregistr\u00e9 avec la date, l\u2019heure et l\u2019auteur<\/strong>.<br>Les commits fournissent une&nbsp;<strong>tra\u00e7abilit\u00e9 claire<\/strong>&nbsp;pour toute personne consultant l\u2019historique d\u2019un fichier ou d\u2019un \u00e9l\u00e9ment li\u00e9, comme une&nbsp;<strong>issue<\/strong>&nbsp;ou une&nbsp;<strong>pull request<\/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\" width=\"758\" height=\"344\" data-src=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-commits.png\" alt=\"\" class=\"wp-image-5385 lazyload\" data-srcset=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-commits.png 758w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-commits-300x136.png 300w\" data-sizes=\"(max-width: 758px) 100vw, 758px\" 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<p>Dans un d\u00e9p\u00f4t Git, un fichier peut exister dans plusieurs \u00e9tats valides&nbsp;au cours du processus de contr\u00f4le de version.<\/p>\n\n\n\n<p>Les&nbsp;<strong>\u00e9tats principaux<\/strong>&nbsp;d\u2019un fichier dans un d\u00e9p\u00f4t Git sont :&nbsp;<strong>Non suivi<\/strong>&nbsp;et&nbsp;<strong>Suivi<\/strong>.<\/p>\n\n\n\n<p>Non suivi (Untracked): \u00c9tat initial d\u2019un fichier lorsqu\u2019il&nbsp;<strong>n\u2019est pas encore int\u00e9gr\u00e9<\/strong>&nbsp;au d\u00e9p\u00f4t Git. Git&nbsp;<strong>n\u2019a pas connaissance<\/strong>&nbsp;de son existence.<\/p>\n\n\n\n<p>Suivi (Tracked): Un fichier suivi est un fichier que Git&nbsp;<strong>surveille activement<\/strong>. Il peut \u00eatre dans l\u2019un des sous-\u00e9tats suivants :<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><strong>Non modifi\u00e9 (Unmodified)<\/strong>&nbsp;: Le fichier est suivi, mais&nbsp;<strong>n\u2019a pas \u00e9t\u00e9 modifi\u00e9<\/strong>&nbsp;depuis le dernier commit.<\/li>\n\n\n\n<li><strong>Modifi\u00e9 (Modified)<\/strong>&nbsp;: Le fichier a \u00e9t\u00e9&nbsp;<strong>modifi\u00e9<\/strong>&nbsp;depuis le dernier commit, mais ces modifications&nbsp;<strong>ne sont pas encore pr\u00e9par\u00e9es<\/strong>&nbsp;pour le prochain commit.<\/li>\n\n\n\n<li><strong>Pr\u00e9par\u00e9 (Staged)<\/strong>&nbsp;: Le fichier a \u00e9t\u00e9 modifi\u00e9 et les changements ont \u00e9t\u00e9&nbsp;<strong>ajout\u00e9s \u00e0 la zone de pr\u00e9paration<\/strong>&nbsp;(appel\u00e9e aussi&nbsp;<strong>index<\/strong>). Ces modifications sont&nbsp;<strong>pr\u00eates \u00e0 \u00eatre valid\u00e9es<\/strong>.<\/li>\n\n\n\n<li><strong>Valid\u00e9 (Committed)<\/strong>&nbsp;: Le fichier est enregistr\u00e9 dans la&nbsp;<strong>base de donn\u00e9es du d\u00e9p\u00f4t<\/strong>. Il repr\u00e9sente la&nbsp;<strong>derni\u00e8re version valid\u00e9e<\/strong>&nbsp;du fichier.<\/li>\n<\/ul>\n\n\n\n<p>Ces \u00e9tats et sous-\u00e9tats sont importants pour&nbsp;<strong>collaborer efficacement<\/strong>&nbsp;avec votre \u00e9quipe et savoir&nbsp;<strong>o\u00f9 en est chaque commit<\/strong>&nbsp;dans le processus de votre 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\"><strong>Qu\u2019est-ce qu\u2019une pull request ?<\/strong><\/h3>\n\n\n\n<p>Une&nbsp;<strong>pull request<\/strong>&nbsp;est le m\u00e9canisme utilis\u00e9 pour&nbsp;<strong>signaler que les commits d\u2019une branche sont pr\u00eats \u00e0 \u00eatre fusionn\u00e9s<\/strong>&nbsp;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&nbsp;<strong>v\u00e9rifier le code<\/strong>&nbsp;et d\u2019<strong>approuver la fusion<\/strong>.<br>Ces relecteurs peuvent&nbsp;<strong>commenter les modifications<\/strong>,&nbsp;<strong>ajouter leurs propres changements<\/strong>, ou utiliser la pull request pour&nbsp;<strong>discuter davantage<\/strong>.<\/p>\n\n\n\n<p>Une fois les modifications&nbsp;<strong>approuv\u00e9es<\/strong>&nbsp;(si n\u00e9cessaire), la branche source de la pull request (appel\u00e9e&nbsp;<strong>branche de comparaison<\/strong>) 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<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\" width=\"1003\" height=\"658\" data-src=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-pull-request.png\" alt=\"\" class=\"wp-image-5383 lazyload\" data-srcset=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-pull-request.png 1003w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-pull-request-300x197.png 300w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-pull-request-768x504.png 768w\" data-sizes=\"(max-width: 1003px) 100vw, 1003px\" 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 ingr\u00e9dients, passons en revue le GitHub flow.<\/p>\n\n\n\n<div style=\"height:20px\" aria-hidden=\"true\" class=\"wp-block-spacer\"><\/div>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>GitHub flow<\/strong><\/h2>\n\n\n\n<figure class=\"wp-block-image size-large\"><img decoding=\"async\" width=\"1024\" height=\"327\" data-src=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-branching-1024x327.png\" alt=\"\" class=\"wp-image-5381 lazyload\" data-srcset=\"https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-branching-1024x327.png 1024w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-branching-300x96.png 300w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-branching-768x245.png 768w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-branching-1536x491.png 1536w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-branching-2048x654.png 2048w, https:\/\/techhub.saworks.io\/wp-content\/uploads\/2025\/07\/2-branching-1800x575.png 1800w\" data-sizes=\"(max-width: 1024px) 100vw, 1024px\" src=\"data:image\/svg+xml;base64,PHN2ZyB3aWR0aD0iMSIgaGVpZ2h0PSIxIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjwvc3ZnPg==\" style=\"--smush-placeholder-width: 1024px; --smush-placeholder-aspect-ratio: 1024\/327;\" \/><\/figure>\n\n\n\n<p><strong>Le GitHub flow<\/strong>&nbsp;peut \u00eatre d\u00e9fini comme un flux de travail l\u00e9ger qui permet une exp\u00e9rimentation en toute s\u00e9curit\u00e9. Vous pouvez tester de nouvelles id\u00e9es et collaborer avec votre \u00e9quipe en utilisant les branches, les pull requests (demandes de tirage) et les fusions.<\/p>\n\n\n\n<p>Maintenant que nous connaissons les bases de GitHub, nous pouvons passer en revue le GitHub flow et ses diff\u00e9rentes \u00e9tapes.<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li><strong>Commencez par cr\u00e9er une branche<\/strong>&nbsp;afin que les modifications, les nouvelles fonctionnalit\u00e9s ou les corrections que vous apportez n&rsquo;affectent pas la branche principale.<\/li>\n\n\n\n<li><strong>Ensuite, effectuez vos modifications.<\/strong>&nbsp;Il est recommand\u00e9 de d\u00e9ployer les changements sur votre branche de fonctionnalit\u00e9 avant de les fusionner dans la branche principale. Cela permet de s&rsquo;assurer que les modifications sont valides dans un environnement de production.<\/li>\n\n\n\n<li><strong>Cr\u00e9ez maintenant une pull request<\/strong>&nbsp;pour demander des retours \u00e0 vos collaborateurs. L&rsquo;examen des pull requests est si pr\u00e9cieux que certains d\u00e9p\u00f4ts exigent une approbation avant de permettre la fusion.<\/li>\n\n\n\n<li><strong>Passez en revue et appliquez les retours<\/strong>&nbsp;de vos collaborateurs.<\/li>\n\n\n\n<li><strong>Une fois que vous \u00eates satisfait de vos modifications<\/strong>, il est temps de faire approuver votre pull request et de la fusionner dans la branche principale.<\/li>\n\n\n\n<li><strong>Enfin, vous pouvez supprimer votre branche.<\/strong>&nbsp;Cela indique que le travail sur cette branche est termin\u00e9 et \u00e9vite que vous ou d&rsquo;autres personnes n&rsquo;utilisiez accidentellement d&rsquo;anciennes branches.<\/li>\n<\/ol>\n\n\n\n<p>Et voil\u00e0, vous avez parcouru un cycle complet du GitHub flow !<\/p>\n\n\n\n<p>Passons maintenant \u00e0 la section suivante, o\u00f9 nous allons aborder les diff\u00e9rences entre&nbsp;<strong>issues<\/strong>&nbsp;(probl\u00e8mes) et&nbsp;<strong>discussions<\/strong>.<\/p>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>Dans cette unit\u00e9, nous passons en revue les composants suivants du&nbsp;GitHub Flow&nbsp;: Qu\u2019est-ce qu\u2019une branche ? Dans la section pr\u00e9c\u00e9dente, nous avons cr\u00e9\u00e9 [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":0,"parent":5345,"menu_order":4,"comment_status":"closed","ping_status":"closed","template":"","doc_tag":[],"doc_badge":[],"class_list":["post-5378","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\/5378"}],"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=5378"}],"version-history":[{"count":0,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/5378\/revisions"}],"up":[{"embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/docs\/5345"}],"wp:attachment":[{"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/media?parent=5378"}],"wp:term":[{"taxonomy":"doc_tag","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/doc_tag?post=5378"},{"taxonomy":"doc_badge","embeddable":true,"href":"https:\/\/techhub.saworks.io\/fr\/wp-json\/wp\/v2\/doc_badge?post=5378"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}