CINXE.COM
Git - Travailler avec les branches
<!DOCTYPE html> <html lang="fr"> <head> <meta charset='utf-8'> <meta content='IE=edge,chrome=1' http-equiv='X-UA-Compatible'> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Git - Travailler avec les branches</title> <link href="/favicon.ico" rel='shortcut icon' type='image/x-icon'> <link rel="stylesheet" href="/application.min.css"> <script src="/js/modernizr.js"></script> <script src="/js/modernize.js"></script> </head> <body id="documentation"> <div class="inner"> <header> <a href="/"><img src="/images/logo@2x.png" width="110" height="46" alt="Git" /></a> <span id="tagline"></span> <script type="text/javascript"> const taglines = [ "fast-version-control", "everything-is-local", "distributed-even-if-your-workflow-isnt", "local-branching-on-the-cheap", "distributed-is-the-new-centralized" ]; var tagline = taglines[Math.floor(Math.random() * taglines.length)]; document.getElementById('tagline').innerHTML = '--' + tagline; </script> <form id="search" action="/search/results"> <input id="search-text" name="search" placeholder="Type / to search entire site…" autocomplete="off" type="text" /> </form> <div id="search-results"></div> </header> </div> <div class="inner"> <div id="content-wrapper"> <div tabindex="1" class="sidebar-btn"></div> <aside class="sidebar" id="sidebar"> <nav> <ul> <li> <a href="/about">About</a> <ul> </ul> </li> <li> <a href="/doc" class="active">Documentation</a> <ul class="expanded"> <li> <a href="/docs">Reference</a> </li> <li> <a href="/book" class="active">Book</a> </li> <li> <a href="/videos">Videos</a> </li> <li> <a href="/doc/ext">External Links</a> </li> </ul> </li> <li> <a href="/downloads">Downloads</a> <ul > <li> <a href="/downloads/guis">GUI Clients</a> </li> <li> <a href="/downloads/logos">Logos</a> </li> </ul> </li> <li> <a href="/community">Community</a> </li> </ul> <hr class="sidebar"> <p> This book is available in <a href="/book/en/v2/Git-Branching-Branching-Workflows">English</a>. </p> <p> Full translation available in <table> <tr><td><a href="/book/az/v2/Git%e2%80%99d%c9%99-Branch-Branching-%c4%b0%c5%9f-Ax%c4%b1nlar%c4%b1">azərbaycan dili</a>,</td></tr> <tr><td><a href="/book/bg/v2/%d0%9a%d0%bb%d0%be%d0%bd%d0%be%d0%b2%d0%b5-%d0%b2-Git-%d0%a1%d1%82%d1%80%d0%b0%d1%82%d0%b5%d0%b3%d0%b8%d0%b8-%d0%b7%d0%b0-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%ba%d0%bb%d0%be%d0%bd%d0%be%d0%b2%d0%b5-%d0%ba%d0%be%d0%b4">български език</a>,</td></tr> <tr><td><a href="/book/de/v2/Git-Branching-Branching-Workflows">Deutsch</a>,</td></tr> <tr><td><a href="/book/es/v2/Ramificaciones-en-Git-Flujos-de-Trabajo-Ramificados">Español</a>,</td></tr> <tr><td><a href="/book/fr/v2/Les-branches-avec-Git-Travailler-avec-les-branches">Français</a>,</td></tr> <tr><td><a href="/book/gr">Ελληνικά</a>,</td></tr> <tr><td><a href="/book/ja/v2/Git-%e3%81%ae%e3%83%96%e3%83%a9%e3%83%b3%e3%83%81%e6%a9%9f%e8%83%bd-%e3%83%96%e3%83%a9%e3%83%b3%e3%83%81%e3%81%a7%e3%81%ae%e4%bd%9c%e6%a5%ad%e3%81%ae%e6%b5%81%e3%82%8c">日本語</a>,</td></tr> <tr><td><a href="/book/ko/v2/Git-%eb%b8%8c%eb%9e%9c%ec%b9%98-%eb%b8%8c%eb%9e%9c%ec%b9%98-%ec%9b%8c%ed%81%ac%ed%94%8c%eb%a1%9c">한국어</a>,</td></tr> <tr><td><a href="/book/nl/v2/Branchen-in-Git-Branch-workflows">Nederlands</a>,</td></tr> <tr><td><a href="/book/ru/v2/%d0%92%d0%b5%d1%82%d0%b2%d0%bb%d0%b5%d0%bd%d0%b8%d0%b5-%d0%b2-Git-%d0%a0%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d1%81-%d0%b2%d0%b5%d1%82%d0%ba%d0%b0%d0%bc%d0%b8">Русский</a>,</td></tr> <tr><td><a href="/book/sl/v2/Veje-Git-Poteki-dela-z-vejami">Slovenščina</a>,</td></tr> <tr><td><a href="/book/tl/v2/Pag-branch-ng-Git-Mga-Daloy-ng-Trabaho-sa-Pag-branch">Tagalog</a>,</td></tr> <tr><td><a href="/book/uk/v2/%d0%93%d0%b0%d0%bb%d1%83%d0%b6%d0%b5%d0%bd%d0%bd%d1%8f-%d0%b2-git-%d0%9f%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8-%d1%80%d0%be%d0%b1%d0%be%d1%82%d0%b8-%d0%b7-%d0%b3%d1%96%d0%bb%d0%ba%d0%b0%d0%bc%d0%b8">Українська</a></td></tr> <tr><td><a href="/book/zh/v2/Git-%e5%88%86%e6%94%af-%e5%88%86%e6%94%af%e5%bc%80%e5%8f%91%e5%b7%a5%e4%bd%9c%e6%b5%81">简体中文</a>,</td></tr> </table> </p> <p> Partial translations available in <table> <tr><td><a href="/book/cs/v2/V%c4%9btve-v-syst%c3%a9mu-Git-Postupy-p%c5%99i-pr%c3%a1ci-s-v%c4%9btvemi">Čeština</a>,</td></tr> <tr><td><a href="/book/mk/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b5%d1%9a%d0%b5-%d0%b2%d0%be-Git-%d0%a0%d0%b0%d0%b1%d0%be%d1%82%d0%bd%d0%b8-%d0%bf%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8">Македонски</a>,</td></tr> <tr><td><a href="/book/pl/v2/Ga%c5%82%c4%99zie-Gita-Sposoby-pracy-z-ga%c5%82%c4%99ziami">Polski</a>,</td></tr> <tr><td><a href="/book/sr/v2/%d0%93%d1%80%d0%b0%d0%bd%d0%b0%d1%9a%d0%b5-%d1%83-%d0%bf%d1%80%d0%be%d0%b3%d1%80%d0%b0%d0%bc%d1%83-%d0%93%d0%b8%d1%82-%d0%9f%d1%80%d0%be%d1%86%d0%b5%d1%81%d0%b8-%d1%80%d0%b0%d0%b4%d0%b0-%d1%81%d0%b0-%d0%b3%d1%80%d0%b0%d0%bd%d0%b0%d1%9a%d0%b5%d0%bc">Српски</a>,</td></tr> <tr><td><a href="/book/uz/v2/Git-%d0%b4%d0%b0-%d1%82%d0%b0%d1%80%d0%bc%d0%be%d2%9b%d0%bb%d0%b0%d0%bd%d0%b8%d1%88-%d0%98%d1%88-%d0%b6%d0%b0%d1%80%d0%b0%d1%91%d0%bd%d0%bb%d0%b0%d1%80%d0%b8%d0%bd%d0%b8-%d1%82%d0%b0%d1%80%d0%bc%d0%be%d2%9b%d0%bb%d0%b0%d1%88">Ўзбекча</a>,</td></tr> <tr><td><a href="/book/zh-tw/v2/%e4%bd%bf%e7%94%a8-Git-%e5%88%86%e6%94%af-%e5%88%86%e6%94%af%e5%b7%a5%e4%bd%9c%e6%b5%81%e7%a8%8b">繁體中文</a>,</td></tr> </table> </p> <p> Translations started for <table> <tr><td><a href="/book/be/v2/Git-Branching-Branching-Workflows">Беларуская</a>,</td></tr> <tr><td><a href="/book/fa/v2/%d8%b4%d8%a7%d8%ae%d9%87%e2%80%8c%d8%b3%d8%a7%d8%b2%db%8c-%d8%af%d8%b1-%da%af%db%8c%d8%aa-%d8%b1%d9%88%d9%86%d8%af-%da%a9%d8%a7%d8%b1%db%8c-%d8%b4%d8%a7%d8%ae%d9%87%e2%80%8c%d8%b3%d8%a7%d8%b2%db%8c" dir="rtl">فارسی</a>,</td></tr> <tr><td><a href="/book/id/v2/Git-Branching-Branching-Workflows">Indonesian</a>,</td></tr> <tr><td><a href="/book/it/v2/Git-Branching-Branching-Workflows">Italiano</a>,</td></tr> <tr><td><a href="/book/ms/v2/Git-Branching-Branching-Workflows">Bahasa Melayu</a>,</td></tr> <tr><td><a href="/book/pt-br/v2/Branches-no-Git-Fluxo-de-Branches">Português (Brasil)</a>,</td></tr> <tr><td><a href="/book/pt-pt/v2/Ramifica%c3%a7%c3%a3o-do-Git-Branching-Workflows">Português (Portugal)</a>,</td></tr> <tr><td><a href="/book/sv/v2/Git-f%c3%b6rgreningar-Arbetsfl%c3%b6de-med-grenar">Svenska</a>,</td></tr> <tr><td><a href="/book/tr/v2/Git-Dallar%c4%b1-%c4%b0%c5%9f-Ak%c4%b1%c5%9f%c4%b1-Dalland%c4%b1rmas%c4%b1">Türkçe</a>.</td></tr> </table> </p> <hr class="sidebar"/> <p> The source of this book is <a href="https://github.com/progit/progit2-fr">hosted on GitHub.</a></br> Patches, suggestions and comments are welcome. </p> </nav> </aside> <div id="content"> <div id="book-chapters"> <a class="dropdown-trigger" id="book-chapters-trigger" data-panel-id="chapters-dropdown" href="#">Chapters ▾</a> <div class='dropdown-panel' id='chapters-dropdown'> <div class='three-column'> <div class="column-left"> <ol class='book-toc'> <li class='chapter'> <h2>1. <a href="/book/fr/v2/D%c3%a9marrage-rapide-%c3%80-propos-de-la-gestion-de-version">Démarrage rapide</a></h2> <ol> <li> 1.1 <a href="/book/fr/v2/D%c3%a9marrage-rapide-%c3%80-propos-de-la-gestion-de-version">À propos de la gestion de version</a> </li> <li> 1.2 <a href="/book/fr/v2/D%c3%a9marrage-rapide-Une-rapide-histoire-de-Git">Une rapide histoire de Git</a> </li> <li> 1.3 <a href="/book/fr/v2/D%c3%a9marrage-rapide-Rudiments-de-Git">Rudiments de Git</a> </li> <li> 1.4 <a href="/book/fr/v2/D%c3%a9marrage-rapide-La-ligne-de-commande">La ligne de commande</a> </li> <li> 1.5 <a href="/book/fr/v2/D%c3%a9marrage-rapide-Installation-de-Git">Installation de Git</a> </li> <li> 1.6 <a href="/book/fr/v2/D%c3%a9marrage-rapide-Param%c3%a9trage-%c3%a0-la-premi%c3%a8re-utilisation-de-Git">Paramétrage à la première utilisation de Git</a> </li> <li> 1.7 <a href="/book/fr/v2/D%c3%a9marrage-rapide-Obtenir-de-l%e2%80%99aide">Obtenir de l’aide</a> </li> <li> 1.8 <a href="/book/fr/v2/D%c3%a9marrage-rapide-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>2. <a href="/book/fr/v2/Les-bases-de-Git-D%c3%a9marrer-un-d%c3%a9p%c3%b4t-Git">Les bases de Git</a></h2> <ol> <li> 2.1 <a href="/book/fr/v2/Les-bases-de-Git-D%c3%a9marrer-un-d%c3%a9p%c3%b4t-Git">Démarrer un dépôt Git</a> </li> <li> 2.2 <a href="/book/fr/v2/Les-bases-de-Git-Enregistrer-des-modifications-dans-le-d%c3%a9p%c3%b4t">Enregistrer des modifications dans le dépôt</a> </li> <li> 2.3 <a href="/book/fr/v2/Les-bases-de-Git-Visualiser-l%e2%80%99historique-des-validations">Visualiser l’historique des validations</a> </li> <li> 2.4 <a href="/book/fr/v2/Les-bases-de-Git-Annuler-des-actions">Annuler des actions</a> </li> <li> 2.5 <a href="/book/fr/v2/Les-bases-de-Git-Travailler-avec-des-d%c3%a9p%c3%b4ts-distants">Travailler avec des dépôts distants</a> </li> <li> 2.6 <a href="/book/fr/v2/Les-bases-de-Git-%c3%89tiquetage">Étiquetage</a> </li> <li> 2.7 <a href="/book/fr/v2/Les-bases-de-Git-Les-alias-Git">Les alias Git</a> </li> <li> 2.8 <a href="/book/fr/v2/Les-bases-de-Git-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>3. <a href="/book/fr/v2/Les-branches-avec-Git-Les-branches-en-bref">Les branches avec Git</a></h2> <ol> <li> 3.1 <a href="/book/fr/v2/Les-branches-avec-Git-Les-branches-en-bref">Les branches en bref</a> </li> <li> 3.2 <a href="/book/fr/v2/Les-branches-avec-Git-Branches-et-fusions%c2%a0:-les-bases">Branches et fusions : les bases</a> </li> <li> 3.3 <a href="/book/fr/v2/Les-branches-avec-Git-Gestion-des-branches">Gestion des branches</a> </li> <li> 3.4 <a href="/book/fr/v2/Les-branches-avec-Git-Travailler-avec-les-branches" class="active">Travailler avec les branches</a> </li> <li> 3.5 <a href="/book/fr/v2/Les-branches-avec-Git-Branches-de-suivi-%c3%a0-distance">Branches de suivi à distance</a> </li> <li> 3.6 <a href="/book/fr/v2/Les-branches-avec-Git-Rebaser-Rebasing">Rebaser (Rebasing)</a> </li> <li> 3.7 <a href="/book/fr/v2/Les-branches-avec-Git-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>4. <a href="/book/fr/v2/Git-sur-le-serveur-Protocoles">Git sur le serveur</a></h2> <ol> <li> 4.1 <a href="/book/fr/v2/Git-sur-le-serveur-Protocoles">Protocoles</a> </li> <li> 4.2 <a href="/book/fr/v2/Git-sur-le-serveur-Installation-de-Git-sur-un-serveur">Installation de Git sur un serveur</a> </li> <li> 4.3 <a href="/book/fr/v2/Git-sur-le-serveur-G%c3%a9n%c3%a9ration-des-cl%c3%a9s-publiques-SSH">Génération des clés publiques SSH</a> </li> <li> 4.4 <a href="/book/fr/v2/Git-sur-le-serveur-Mise-en-place-du-serveur">Mise en place du serveur</a> </li> <li> 4.5 <a href="/book/fr/v2/Git-sur-le-serveur-D%c3%a9mon-Daemon-Git">Démon (Daemon) Git</a> </li> <li> 4.6 <a href="/book/fr/v2/Git-sur-le-serveur-HTTP-intelligent">HTTP intelligent</a> </li> <li> 4.7 <a href="/book/fr/v2/Git-sur-le-serveur-GitWeb">GitWeb</a> </li> <li> 4.8 <a href="/book/fr/v2/Git-sur-le-serveur-GitLab">GitLab</a> </li> <li> 4.9 <a href="/book/fr/v2/Git-sur-le-serveur-Git-h%c3%a9berg%c3%a9">Git hébergé</a> </li> <li> 4.10 <a href="/book/fr/v2/Git-sur-le-serveur-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>5. <a href="/book/fr/v2/Git-distribu%c3%a9-D%c3%a9veloppements-distribu%c3%a9s">Git distribué</a></h2> <ol> <li> 5.1 <a href="/book/fr/v2/Git-distribu%c3%a9-D%c3%a9veloppements-distribu%c3%a9s">Développements distribués</a> </li> <li> 5.2 <a href="/book/fr/v2/Git-distribu%c3%a9-Contribution-%c3%a0-un-projet">Contribution à un projet</a> </li> <li> 5.3 <a href="/book/fr/v2/Git-distribu%c3%a9-Maintenance-d%e2%80%99un-projet">Maintenance d’un projet</a> </li> <li> 5.4 <a href="/book/fr/v2/Git-distribu%c3%a9-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> </ol> </div> <div class='column-middle'> <ol class='book-toc'> <li class='chapter'> <h2>6. <a href="/book/fr/v2/GitHub-Configuration-et-param%c3%a9trage-d%e2%80%99un-compte">GitHub</a></h2> <ol> <li> 6.1 <a href="/book/fr/v2/GitHub-Configuration-et-param%c3%a9trage-d%e2%80%99un-compte">Configuration et paramétrage d’un compte</a> </li> <li> 6.2 <a href="/book/fr/v2/GitHub-Contribution-%c3%a0-un-projet">Contribution à un projet</a> </li> <li> 6.3 <a href="/book/fr/v2/GitHub-Maintenance-d%e2%80%99un-projet">Maintenance d’un projet</a> </li> <li> 6.4 <a href="/book/fr/v2/GitHub-Gestion-d%e2%80%99un-regroupement">Gestion d’un regroupement</a> </li> <li> 6.5 <a href="/book/fr/v2/GitHub-%c3%89criture-de-scripts-pour-GitHub">Écriture de scripts pour GitHub</a> </li> <li> 6.6 <a href="/book/fr/v2/GitHub-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>7. <a href="/book/fr/v2/Utilitaires-Git-S%c3%a9lection-des-versions">Utilitaires Git</a></h2> <ol> <li> 7.1 <a href="/book/fr/v2/Utilitaires-Git-S%c3%a9lection-des-versions">Sélection des versions</a> </li> <li> 7.2 <a href="/book/fr/v2/Utilitaires-Git-Indexation-interactive">Indexation interactive</a> </li> <li> 7.3 <a href="/book/fr/v2/Utilitaires-Git-Remisage-et-nettoyage">Remisage et nettoyage</a> </li> <li> 7.4 <a href="/book/fr/v2/Utilitaires-Git-Signer-votre-travail">Signer votre travail</a> </li> <li> 7.5 <a href="/book/fr/v2/Utilitaires-Git-Recherche">Recherche</a> </li> <li> 7.6 <a href="/book/fr/v2/Utilitaires-Git-R%c3%a9%c3%a9crire-l%e2%80%99historique">Réécrire l’historique</a> </li> <li> 7.7 <a href="/book/fr/v2/Utilitaires-Git-Reset-d%c3%a9mystifi%c3%a9">Reset démystifié</a> </li> <li> 7.8 <a href="/book/fr/v2/Utilitaires-Git-Fusion-avanc%c3%a9e">Fusion avancée</a> </li> <li> 7.9 <a href="/book/fr/v2/Utilitaires-Git-Rerere">Rerere</a> </li> <li> 7.10 <a href="/book/fr/v2/Utilitaires-Git-D%c3%a9boguer-avec-Git">Déboguer avec Git</a> </li> <li> 7.11 <a href="/book/fr/v2/Utilitaires-Git-Sous-modules">Sous-modules</a> </li> <li> 7.12 <a href="/book/fr/v2/Utilitaires-Git-Empaquetage-bundling">Empaquetage (bundling)</a> </li> <li> 7.13 <a href="/book/fr/v2/Utilitaires-Git-Replace">Replace</a> </li> <li> 7.14 <a href="/book/fr/v2/Utilitaires-Git-Stockage-des-identifiants">Stockage des identifiants</a> </li> <li> 7.15 <a href="/book/fr/v2/Utilitaires-Git-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>8. <a href="/book/fr/v2/Personnalisation-de-Git-Configuration-de-Git">Personnalisation de Git</a></h2> <ol> <li> 8.1 <a href="/book/fr/v2/Personnalisation-de-Git-Configuration-de-Git">Configuration de Git</a> </li> <li> 8.2 <a href="/book/fr/v2/Personnalisation-de-Git-Attributs-Git">Attributs Git</a> </li> <li> 8.3 <a href="/book/fr/v2/Personnalisation-de-Git-Crochets-Git">Crochets Git</a> </li> <li> 8.4 <a href="/book/fr/v2/Personnalisation-de-Git-Exemple-de-politique-g%c3%a9r%c3%a9e-par-Git">Exemple de politique gérée par Git</a> </li> <li> 8.5 <a href="/book/fr/v2/Personnalisation-de-Git-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>9. <a href="/book/fr/v2/Git-et-les-autres-syst%c3%a8mes-Git-comme-client">Git et les autres systèmes</a></h2> <ol> <li> 9.1 <a href="/book/fr/v2/Git-et-les-autres-syst%c3%a8mes-Git-comme-client">Git comme client</a> </li> <li> 9.2 <a href="/book/fr/v2/Git-et-les-autres-syst%c3%a8mes-Migration-vers-Git">Migration vers Git</a> </li> <li> 9.3 <a href="/book/fr/v2/Git-et-les-autres-syst%c3%a8mes-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>10. <a href="/book/fr/v2/Les-tripes-de-Git-Plomberie-et-porcelaine">Les tripes de Git</a></h2> <ol> <li> 10.1 <a href="/book/fr/v2/Les-tripes-de-Git-Plomberie-et-porcelaine">Plomberie et porcelaine</a> </li> <li> 10.2 <a href="/book/fr/v2/Les-tripes-de-Git-Les-objets-de-Git">Les objets de Git</a> </li> <li> 10.3 <a href="/book/fr/v2/Les-tripes-de-Git-R%c3%a9f%c3%a9rences-Git">Références Git</a> </li> <li> 10.4 <a href="/book/fr/v2/Les-tripes-de-Git-Fichiers-group%c3%a9s">Fichiers groupés</a> </li> <li> 10.5 <a href="/book/fr/v2/Les-tripes-de-Git-La-refspec">La refspec</a> </li> <li> 10.6 <a href="/book/fr/v2/Les-tripes-de-Git-Les-protocoles-de-transfert">Les protocoles de transfert</a> </li> <li> 10.7 <a href="/book/fr/v2/Les-tripes-de-Git-Maintenance-et-r%c3%a9cup%c3%a9ration-de-donn%c3%a9es">Maintenance et récupération de données</a> </li> <li> 10.8 <a href="/book/fr/v2/Les-tripes-de-Git-Les-variables-d%e2%80%99environnement">Les variables d’environnement</a> </li> <li> 10.9 <a href="/book/fr/v2/Les-tripes-de-Git-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> </ol> </div> <div class='column-right'> <ol class='book-toc'> <li class='chapter'> <h2>A1. <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Interfaces-graphiques">Annexe A: Git dans d’autres environnements</a></h2> <ol> <li> A1.1 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Interfaces-graphiques">Interfaces graphiques</a> </li> <li> A1.2 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-Visual-Studio">Git dans Visual Studio</a> </li> <li> A1.3 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-Visual-Studio-Code">Git dans Visual Studio Code</a> </li> <li> A1.4 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-IntelliJ-/-PyCharm-/-WebStorm-/-PhpStorm-/-RubyMine">Git dans IntelliJ / PyCharm / WebStorm / PhpStorm / RubyMine</a> </li> <li> A1.5 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-Sublime-Text">Git dans Sublime Text</a> </li> <li> A1.6 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-Bash">Git dans Bash</a> </li> <li> A1.7 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-Zsh">Git dans Zsh</a> </li> <li> A1.8 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-Git-dans-PowerShell">Git dans PowerShell</a> </li> <li> A1.9 <a href="/book/fr/v2/Annexe-A:-Git-dans-d%e2%80%99autres-environnements-R%c3%a9sum%c3%a9">Résumé</a> </li> </ol> </li> <li class='chapter'> <h2>A2. <a href="/book/fr/v2/Annexe-B:-Embarquer-Git-dans-vos-applications-Git-en-ligne-de-commande">Annexe B: Embarquer Git dans vos applications</a></h2> <ol> <li> A2.1 <a href="/book/fr/v2/Annexe-B:-Embarquer-Git-dans-vos-applications-Git-en-ligne-de-commande">Git en ligne de commande</a> </li> <li> A2.2 <a href="/book/fr/v2/Annexe-B:-Embarquer-Git-dans-vos-applications-Libgit2">Libgit2</a> </li> <li> A2.3 <a href="/book/fr/v2/Annexe-B:-Embarquer-Git-dans-vos-applications-JGit">JGit</a> </li> <li> A2.4 <a href="/book/fr/v2/Annexe-B:-Embarquer-Git-dans-vos-applications-go-git">go-git</a> </li> <li> A2.5 <a href="/book/fr/v2/Annexe-B:-Embarquer-Git-dans-vos-applications-Dulwich">Dulwich</a> </li> </ol> </li> <li class='chapter'> <h2>A3. <a href="/book/fr/v2/Commandes-Git-Installation-et-configuration">Commandes Git</a></h2> <ol> <li> A3.1 <a href="/book/fr/v2/Commandes-Git-Installation-et-configuration">Installation et configuration</a> </li> <li> A3.2 <a href="/book/fr/v2/Commandes-Git-Obtention-et-cr%c3%a9ation-des-projets">Obtention et création des projets</a> </li> <li> A3.3 <a href="/book/fr/v2/Commandes-Git-Capture-d%e2%80%99instantan%c3%a9-basique">Capture d’instantané basique</a> </li> <li> A3.4 <a href="/book/fr/v2/Commandes-Git-Cr%c3%a9ation-de-branches-et-fusion">Création de branches et fusion</a> </li> <li> A3.5 <a href="/book/fr/v2/Commandes-Git-Partage-et-mise-%c3%a0-jour-de-projets">Partage et mise à jour de projets</a> </li> <li> A3.6 <a href="/book/fr/v2/Commandes-Git-Inspection-et-comparaison">Inspection et comparaison</a> </li> <li> A3.7 <a href="/book/fr/v2/Commandes-Git-D%c3%a9bogage">Débogage</a> </li> <li> A3.8 <a href="/book/fr/v2/Commandes-Git-Patchs">Patchs</a> </li> <li> A3.9 <a href="/book/fr/v2/Commandes-Git-Courriel">Courriel</a> </li> <li> A3.10 <a href="/book/fr/v2/Commandes-Git-Syst%c3%a8mes-externes">Systèmes externes</a> </li> <li> A3.11 <a href="/book/fr/v2/Commandes-Git-Administration">Administration</a> </li> <li> A3.12 <a href="/book/fr/v2/Commandes-Git-Commandes-de-plomberie">Commandes de plomberie</a> </li> </ol> </li> </ol> </div> </div> </div> <span class="light" id="edition"> 2nd Edition </span> </div> <div id="main" data-pagefind-filter="category:book" data-pagefind-meta="category:Book" data-pagefind-weight="0.05" data-pagefind-body class="book edition2"> <h1>3.4 Les branches avec Git - Travailler avec les branches</h1> <div> <h2 id="_travailler_avec_les_branches">Travailler avec les branches</h2> <div class="paragraph"> <p>Maintenant que vous avez acquis les bases concernant les branches et les fusions (<em>merges</em>), que pouvez-vous ou devez-vous en faire ? Ce chapitre traite des différents processus que cette gestion de branche légère permet de mettre en place, de manière à vous aider à décider si vous souhaitez en incorporer un dans votre cycle de développement.</p> </div> <div class="sect3"> <h3 id="_branches_au_long_cours">Branches au long cours</h3> <div class="paragraph"> <p> Comme Git utilise une <em>fusion à 3 sources</em>, fusionner une même branche dans une autre plusieurs fois sur une longue période est généralement facile. Cela signifie que vous pouvez avoir plusieurs branches ouvertes en permanence pour différentes phases de votre cycle de développement. Vous pourrez fusionner régulièrement ces branches entre elles.</p> </div> <div class="paragraph"> <p>De nombreux développeurs travaillent avec Git selon une méthode qui utilise cette approche. Il s’agit, par exemple, de n’avoir que du code entièrement stable et testé dans leur branche <code>master</code> ou bien même uniquement du code qui a été ou sera publié au sein d’une <em>release</em>. Ils ont alors en parallèle une autre branche appelée <code>develop</code> ou <code>next</code>. Cette branche accueille les développements en cours qui font encore l’objet de tests de stabilité — cette branche n’est pas nécessairement toujours stable mais quand elle le devient, elle peut être intégrée (via une fusion) dans <code>master</code>. Cette branche permet d’intégrer des branches thématiques (<em>topic branches</em> : branches de faible durée de vie telles que votre branche <code>iss53</code>), une fois prêtes, de manière à s’assurer qu’elles passent l’intégralité des tests et n’introduisent pas de bugs.</p> </div> <div class="paragraph"> <p>En réalité, nous parlons de pointeurs qui se déplacent le long des lignes des <em>commits</em> réalisés. Les branches stables sont plus basses dans l’historique des <em>commits</em> tandis que les branches des derniers développements sont plus hautes dans l’historique.</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/fr/v2/images/lr-branches-1.png" alt="Vue linéaire de branches dans un processus de _stabilité progressive_"> </div> <div class="title">Figure 26. Vue linéaire de branches dans un processus de <em>stabilité progressive</em> </div> </div> <div class="paragraph"> <p>Il est généralement plus simple d’y penser en termes de silos de tâches où un ensemble de <em>commits</em> évolue progressivement vers un silo plus stable une fois qu’il a été complètement testé.</p> </div> <div id="lrbranch_b" class="imageblock"> <div class="content"> <img src="/book/fr/v2/images/lr-branches-2.png" alt="Vue _en silo_ de branches dans un processus de _stabilité progressive_"> </div> <div class="title">Figure 27. Vue « en silo » de branches dans un processus de <em>stabilité progressive</em> </div> </div> <div class="paragraph"> <p>Vous pouvez reproduire ce schéma sur plusieurs niveaux de stabilité. Des projets plus gros ont aussi une branche <code>proposed</code> ou <code>pu</code> (<em>proposed updates</em>) qui intègre elle-même des branches qui ne sont pas encore prêtes à être intégrées aux branches <code>next</code> ou <code>master</code>. L’idée est que les branches évoluent à différents niveaux de stabilité : quand elles atteignent un niveau plus stable, elles peuvent être fusionnées dans la branche de stabilité supérieure. Une fois encore, disposer de multiples branches au long cours n’est pas nécessaire mais s’avère souvent utile, spécialement dans le cadre de projets importants et complexes.</p> </div> </div> <div class="sect3"> <h3 id="s_topic_branch">Les branches thématiques</h3> <div class="paragraph"> <p> Les branches thématiques, elles, sont utiles quelle que soit la taille du projet. Une branche thématique est une branche ayant une courte durée de vie créée et utilisée pour une fonctionnalité ou une tâche particulière. C’est une méthode que vous n’avez probablement jamais utilisée avec un autre VCS parce qu’il y est généralement trop lourd de créer et fusionner des branches. Mais dans Git, créer, développer, fusionner et supprimer des branches plusieurs fois par jour est monnaie courante.</p> </div> <div class="paragraph"> <p>Vous avez déjà vu ces branches dans la section précédente avec les branches <code>iss53</code> et <code>correctif</code> que vous avez créées. Vous y avez réalisé quelques <em>commits</em> et vous les avez supprimées immédiatement après les avoir fusionnées dans votre branche principale. Cette technique vous permet de changer de contexte rapidement et complètement. Parce que votre travail est isolé dans des silos où toutes les modifications sont liées à une thématique donnée, il est beaucoup plus simple de réaliser des revues de code. Vous pouvez conserver vos modifications dans ces branches pendant des minutes, des jours ou des mois puis les fusionner quand elles sont prêtes, indépendamment de l’ordre dans lequel elles ont été créées ou traitées.</p> </div> <div class="paragraph"> <p>Prenons l’exemple suivant : alors que vous développez (sur <code>master</code>), vous créez une nouvelle branche pour un problème (<code>prob91</code>), travaillez un peu sur ce problème puis créez une seconde branche pour essayer de trouver une autre manière de le résoudre (<code>prob91v2</code>). Vous retournez ensuite sur la branche <code>master</code> pour y travailler pendant un moment puis finalement créez une dernière branche (<code>ideeidiote</code>) contenant une idée dont vous doutez de la pertinence. Votre historique de <em>commits</em> pourrait ressembler à ceci :</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/fr/v2/images/topic-branches-1.png" alt="Branches thématiques multiples"> </div> <div class="title">Figure 28. Branches thématiques multiples</div> </div> <div class="paragraph"> <p>Maintenant, supposons que vous décidiez que vous préférez la seconde solution pour le problème (<code>prob91v2</code>) et que vous ayez montré la branche <code>ideeidiote</code> à vos collègues qui vous ont dit qu’elle était géniale. Vous pouvez jeter la branche <code>prob91</code> originale (perdant ainsi les <em>commits</em> <code>C5</code> et <code>C6</code>) et fusionner les deux autres branches. Votre historique ressemble à présent à ceci :</p> </div> <div class="imageblock"> <div class="content"> <img src="/book/fr/v2/images/topic-branches-2.png" alt="Historique après la fusion de `ideeidiote` et `prob91v2`"> </div> <div class="title">Figure 29. Historique après la fusion de <code>ideeidiote</code> et <code>prob91v2</code> </div> </div> <div class="paragraph"> <p>Nous verrons au chapitre <a href="/book/fr/v2/ch00/ch05-distributed-git">Git distribué</a>, d’autres méthodes et processus possibles pour vos projets Git. Nous vous invitons à prendre connaissance de ce chapitre avant de vous décider pour une méthode particulière de gestion de vos branches pour votre prochain projet.</p> </div> <div class="paragraph"> <p>Il est important de se souvenir que lors de la réalisation de toutes ces actions, ces branches sont complètement locales. Lorsque vous créez et fusionnez des branches, ceci est réalisé uniquement dans votre dépôt Git local et aucune communication avec un serveur n’a lieu.</p> </div> </div> <div id="nav"><a href="/book/fr/v2/Les-branches-avec-Git-Gestion-des-branches">prev</a> | <a href="/book/fr/v2/Les-branches-avec-Git-Branches-de-suivi-à-distance">next</a></div> </div> </div> </div> </div> <footer> <div class="site-source"> <a href="/site">About this site</a><br> Patches, suggestions, and comments are welcome. </div> <div class="sfc-member"> Git is a member of <a href="/sfc">Software Freedom Conservancy</a> </div> </footer> <a href="#top" class="no-js scrollToTop" id="scrollToTop" data-label="Scroll to top"> <img src="/images/icons/chevron-up@2x.png" width="20" height="20" alt="scroll-to-top"/> </a> <script src="/js/jquery-1.7.1.min.js"></script> <script src="/js/jquery-ui-1.8.18.custom.min.js"></script> <script src="/js/jquery.defaultvalue.js"></script> <script src="/js/session.min.js"></script> <script src="/js/application.min.js"></script> </div> </body> </html>