CINXE.COM

Git - git-bisect Documentation

<!DOCTYPE html> <html lang="fr"> <head> <script type="text/javascript"> const currentTheme = localStorage.getItem("theme") if (currentTheme) { const prefersDarkScheme = window.matchMedia("(prefers-color-scheme: dark)").matches if ((prefersDarkScheme && currentTheme === "light") || (!prefersDarkScheme && currentTheme === "dark")) { document.documentElement.dataset.theme = currentTheme } } </script> <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 - git-bisect Documentation</title> <link href="/favicon.ico" rel='shortcut icon' type='image/x-icon'> <link rel="stylesheet" href="/application.min.css"> </head> <body id="documentation"> <div class="inner"> <header> <a id="logo" href="/"><img src="/images/logo@2x.png" width="110" height="46" alt="Git" class="no-filter" /></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> <div id="search-container"> <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> </div> <img src="/images/dark-mode.svg" id="dark-mode-button" /> </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" class="active">Reference</a> </li> <li> <a href="/book">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> </nav> </aside> <div id="content"> <div id='reference-version'> <a class="dropdown-trigger" id="reference-languages-trigger" data-panel-id="l10n-versions-dropdown" href="#"> Français ▾</a> <div class='dropdown-panel right' id='l10n-versions-dropdown'> <header>Localized versions of <strong>git-bisect</strong> manual</header> <ol class='reference-previous-versions'> <li> <a href="/docs/git-bisect"><span class="version">English</span> </a> </li> <li> <a href="/docs/git-bisect/fr"><span class="version">Français</span> </a> </li> <li> <a href="/docs/git-bisect/pt_BR"><span class="version">Português (Brasil)</span> </a> </li> <li> <a href="/docs/git-bisect/zh_HANS-CN"><span class="version">简体中文</span> </a> </li> </ol> <footer> Want to read in your language or fix typos?<br/> <a href="https://github.com/jnavila/git-manpages-l10n">You can help translate this page</a>. </footer> </div> <a class="dropdown-trigger" id="reference-topics-trigger" data-panel-id="topics-dropdown" href="#">Topics ▾</a> <div class='dropdown-panel right' id='topics-dropdown'> <div class='three-column'> <div class='column-left'> <h3 class='setup'>Setup and Config</h3> <ul class='unstyled'> <li> <a href="/docs/git/fr"> git </a> </li> <li> <a href="/docs/git-config/fr"> config </a> </li> <li> <a href="/docs/git-help/fr"> help </a> </li> <li> <a href="/docs/git-bugreport/fr"> bugreport </a> </li> <li> <a href="/doc/credential-helpers"> Credential helpers </a> </li> </ul> <h3 class='projects'>Getting and Creating Projects</h3> <ul class='unstyled'> <li> <a href="/docs/git-init/fr"> init </a> </li> <li> <a href="/docs/git-clone/fr"> clone </a> </li> </ul> <h3 class='snapshotting'>Basic Snapshotting</h3> <ul class='unstyled'> <li> <a href="/docs/git-add/fr"> add </a> </li> <li> <a href="/docs/git-status/fr"> status </a> </li> <li> <a href="/docs/git-diff/fr"> diff </a> </li> <li> <a href="/docs/git-commit/fr"> commit </a> </li> <li> <a href="/docs/git-notes/fr"> notes </a> </li> <li> <a href="/docs/git-restore/fr"> restore </a> </li> <li> <a href="/docs/git-reset/fr"> reset </a> </li> <li> <a href="/docs/git-rm/fr"> rm </a> </li> <li> <a href="/docs/git-mv/fr"> mv </a> </li> </ul> <h3 class='branching'>Branching and Merging</h3> <ul class='unstyled'> <li> <a href="/docs/git-branch/fr"> branch </a> </li> <li> <a href="/docs/git-checkout/fr"> checkout </a> </li> <li> <a href="/docs/git-switch/fr"> switch </a> </li> <li> <a href="/docs/git-merge/fr"> merge </a> </li> <li> <a href="/docs/git-mergetool/fr"> mergetool </a> </li> <li> <a href="/docs/git-log/fr"> log </a> </li> <li> <a href="/docs/git-stash/fr"> stash </a> </li> <li> <a href="/docs/git-tag/fr"> tag </a> </li> <li> <a href="/docs/git-worktree/fr"> worktree </a> </li> </ul> <h3 class='sharing'>Sharing and Updating Projects</h3> <ul class='unstyled'> <li> <a href="/docs/git-fetch/fr"> fetch </a> </li> <li> <a href="/docs/git-pull/fr"> pull </a> </li> <li> <a href="/docs/git-push/fr"> push </a> </li> <li> <a href="/docs/git-remote/fr"> remote </a> </li> <li> <a href="/docs/git-submodule/fr"> submodule </a> </li> </ul> </div> <div class='column-middle'> <h3 class='inspection'>Inspection and Comparison</h3> <ul class='unstyled'> <li> <a href="/docs/git-show/fr"> show </a> </li> <li> <a href="/docs/git-log/fr"> log </a> </li> <li> <a href="/docs/git-diff/fr"> diff </a> </li> <li> <a href="/docs/git-difftool/fr"> difftool </a> </li> <li> <a href="/docs/git-range-diff/fr"> range-diff </a> </li> <li> <a href="/docs/git-shortlog/fr"> shortlog </a> </li> <li> <a href="/docs/git-describe/fr"> describe </a> </li> </ul> <h3 class='patching'>Patching</h3> <ul class='unstyled'> <li> <a href="/docs/git-apply/fr"> apply </a> </li> <li> <a href="/docs/git-cherry-pick/fr"> cherry-pick </a> </li> <li> <a href="/docs/git-diff/fr"> diff </a> </li> <li> <a href="/docs/git-rebase/fr"> rebase </a> </li> <li> <a href="/docs/git-revert/fr"> revert </a> </li> </ul> <h3 class='debugging'>Debugging</h3> <ul class='unstyled'> <li> <a href="/docs/git-bisect/fr"> bisect </a> </li> <li> <a href="/docs/git-blame/fr"> blame </a> </li> <li> <a href="/docs/git-grep/fr"> grep </a> </li> </ul> <h3 class='email'>Email</h3> <ul class='unstyled'> <li> <a href="/docs/git-am/fr"> am </a> </li> <li> <a href="/docs/git-apply/fr"> apply </a> </li> <li> <a href="/docs/git-format-patch/fr"> format-patch </a> </li> <li> <a href="/docs/git-send-email"> send-email </a> </li> <li> <a href="/docs/git-request-pull/fr"> request-pull </a> </li> </ul> <h3 class='external'>External Systems</h3> <ul class='unstyled'> <li> <a href="/docs/git-svn"> svn </a> </li> <li> <a href="/docs/git-fast-import/fr"> fast-import </a> </li> </ul> <h3 class='server-admin'>Server Admin</h3> <ul class='unstyled'> <li> <a href="/docs/git-daemon/fr"> daemon </a> </li> <li> <a href="/docs/git-update-server-info"> update-server-info </a> </li> </ul> </div> <div class='column-right'> <h3 class='guides'>Guides</h3> <ul class='unstyled'> <li> <a href="/docs/gitattributes"> gitattributes </a> </li> <li> <a href="/docs/gitcli"> Command-line interface conventions </a> </li> <li> <a href="/docs/giteveryday"> Everyday Git </a> </li> <li> <a href="/docs/gitfaq"> Frequently Asked Questions (FAQ) </a> </li> <li> <a href="/docs/gitglossary/fr"> Glossary </a> </li> <li> <a href="/docs/githooks"> Hooks </a> </li> <li> <a href="/docs/gitignore/fr"> gitignore </a> </li> <li> <a href="/docs/gitmodules"> gitmodules </a> </li> <li> <a href="/docs/gitrevisions"> Revisions </a> </li> <li> <a href="/docs/gitsubmodules"> Submodules </a> </li> <li> <a href="/docs/gittutorial"> Tutorial </a> </li> <li> <a href="/docs/gitworkflows"> Workflows </a> </li> <li> <a href="/docs/git#_guides"> All guides... </a> </li> </ul> <h3 class='admin'>Administration</h3> <ul class='unstyled'> <li> <a href="/docs/git-clean/fr"> clean </a> </li> <li> <a href="/docs/git-gc/fr"> gc </a> </li> <li> <a href="/docs/git-fsck/fr"> fsck </a> </li> <li> <a href="/docs/git-reflog/fr"> reflog </a> </li> <li> <a href="/docs/git-filter-branch"> filter-branch </a> </li> <li> <a href="/docs/git-instaweb/fr"> instaweb </a> </li> <li> <a href="/docs/git-archive/fr"> archive </a> </li> <li> <a href="/docs/git-bundle/fr"> bundle </a> </li> </ul> <h3 class='plumbing'>Plumbing Commands</h3> <ul class='unstyled'> <li> <a href="/docs/git-cat-file/fr"> cat-file </a> </li> <li> <a href="/docs/git-check-ignore/fr"> check-ignore </a> </li> <li> <a href="/docs/git-checkout-index/fr"> checkout-index </a> </li> <li> <a href="/docs/git-commit-tree/fr"> commit-tree </a> </li> <li> <a href="/docs/git-count-objects/fr"> count-objects </a> </li> <li> <a href="/docs/git-diff-index"> diff-index </a> </li> <li> <a href="/docs/git-for-each-ref"> for-each-ref </a> </li> <li> <a href="/docs/git-hash-object"> hash-object </a> </li> <li> <a href="/docs/git-ls-files"> ls-files </a> </li> <li> <a href="/docs/git-ls-tree"> ls-tree </a> </li> <li> <a href="/docs/git-merge-base"> merge-base </a> </li> <li> <a href="/docs/git-read-tree"> read-tree </a> </li> <li> <a href="/docs/git-rev-list/fr"> rev-list </a> </li> <li> <a href="/docs/git-rev-parse"> rev-parse </a> </li> <li> <a href="/docs/git-show-ref"> show-ref </a> </li> <li> <a href="/docs/git-symbolic-ref"> symbolic-ref </a> </li> <li> <a href="/docs/git-update-index"> update-index </a> </li> <li> <a href="/docs/git-update-ref"> update-ref </a> </li> <li> <a href="/docs/git-verify-pack"> verify-pack </a> </li> <li> <a href="/docs/git-write-tree"> write-tree </a> </li> </ul> </div> </div> </div> <a class="dropdown-trigger" id="reference-versions-trigger" data-panel-id="previous-versions-dropdown" href="#"> Latest version ▾ </a> <span class="light d-flex">git-bisect last updated in 2.44.0</span> <div class='dropdown-panel left' id='previous-versions-dropdown'> <header>Changes in the <strong>git-bisect</strong> manual</header> <ol class='reference-previous-versions'> <li class="no-change"><span>2.44.1 &rarr; 2.49.0 no changes</span></li> <li> <a href="/docs/git-bisect/2.44.0"><span class="version">2.44.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2024-02-23</em> </a> </li> <li class="no-change"><span>2.43.3 &rarr; 2.43.6 no changes</span></li> <li> <a href="/docs/git-bisect/2.43.2"><span class="version">2.43.2</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2024-02-13</em> </a> </li> <li> <a href="/docs/git-bisect/2.43.1"><span class="version">2.43.1</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2024-02-09</em> </a> </li> <li> <a href="/docs/git-bisect/2.43.0"><span class="version">2.43.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2023-11-20</em> </a> </li> <li class="no-change"><span>2.42.1 &rarr; 2.42.4 no changes</span></li> <li> <a href="/docs/git-bisect/2.42.0"><span class="version">2.42.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2023-08-21</em> </a> </li> <li class="no-change"><span>2.29.1 &rarr; 2.41.3 no changes</span></li> <li> <a href="/docs/git-bisect/2.29.0"><span class="version">2.29.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2020-10-19</em> </a> </li> <li class="no-change"><span>2.25.1 &rarr; 2.28.1 no changes</span></li> <li> <a href="/docs/git-bisect/2.25.0"><span class="version">2.25.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2020-01-13</em> </a> </li> <li class="no-change"><span>2.18.1 &rarr; 2.24.4 no changes</span></li> <li> <a href="/docs/git-bisect/2.18.0"><span class="version">2.18.0</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2018-06-21</em> </a> </li> <li class="no-change"><span>2.17.0 &rarr; 2.17.6 no changes</span></li> <li> <a href="/docs/git-bisect/2.16.6"><span class="version">2.16.6</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2019-12-06</em> </a> </li> <li class="no-change"><span>2.14.6 &rarr; 2.15.4 no changes</span></li> <li> <a href="/docs/git-bisect/2.13.7"><span class="version">2.13.7</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2018-05-22</em> </a> </li> <li class="no-change"><span>2.12.5 no changes</span></li> <li> <a href="/docs/git-bisect/2.11.4"><span class="version">2.11.4</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-09-22</em> </a> </li> <li class="no-change"><span>2.10.5 no changes</span></li> <li> <a href="/docs/git-bisect/2.9.5"><span class="version">2.9.5</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-07-30</em> </a> </li> <li class="no-change"><span>2.8.6 no changes</span></li> <li> <a href="/docs/git-bisect/2.7.6"><span class="version">2.7.6</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-07-30</em> </a> </li> <li> <a href="/docs/git-bisect/2.6.7"><span class="version">2.6.7</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2017-05-05</em> </a> </li> <li class="no-change"><span>2.2.3 &rarr; 2.5.6 no changes</span></li> <li> <a href="/docs/git-bisect/2.1.4"><span class="version">2.1.4</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2014-12-17</em> </a> </li> <li> <a href="/docs/git-bisect/2.0.5"><span class="version">2.0.5</span> <span class="diff"> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/green-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/red-dot.png" /> <img src="/images/icons/grey-dot.png" /> <img src="/images/icons/grey-dot.png" /> </span> <em class="date">2014-12-17</em> </a> </li> <li>&nbsp;</li> </ol> <footer> <p>Check your version of git by running</p> <code class="command">git --version</code> </footer> </div> </div> <div id="main" data-pagefind-filter="category:reference" data-pagefind-meta="category:Reference" data-pagefind-weight="0.05" data-pagefind-body> <div class="sect1"> <h2 id="_nom"><a class="anchor" href="#_nom"></a>NOM</h2> <div class="sectionbody"> <div class="paragraph"> <p>git-bisect - Trouver par recherche binaire la modification qui a introduit un bogue</p> </div> </div> </div> <div class="sect1"> <h2 id="_synopsis"><a class="anchor" href="#_synopsis"></a>SYNOPSIS</h2> <div class="sectionbody"> <div class="verseblock"> <pre class="content"><em>git bisect</em> &lt;sous-commande&gt; &lt;options&gt;</pre> </div> </div> </div> <div class="sect1"> <h2 id="_description"><a class="anchor" href="#_description"></a>DESCRIPTION</h2> <div class="sectionbody"> <div class="paragraph"> <p>La commande prend diverses sous-commandes et différentes options selon la sous-commande :</p> </div> <div class="literalblock"> <div class="content"> <pre>git bisect start [--term-(bad|new)=&lt;terme-nouveau&gt; --term-(good|old)=&lt;terme-ancien&gt;] [--no-checkout] [--first-parent] [&lt;mauvais&gt; [&lt;bon&gt;...]] [--] [&lt;spéc-de-chemin&gt;...] git bisect (bad|new|&lt;terme-nouveau&gt;) [&lt;rev&gt;] git bisect (good|old|&lt;terme-ancien&gt;) [&lt;rev&gt;...] git bisect terms [--term-good | --term-bad] git bisect skip [(&lt;rev&gt;|&lt;plage&gt;)...] git bisect reset [&lt;commit&gt;] git bisect (visualize|view) git bisect replay &lt;fichier-journal&gt; git bisect log git bisect run &lt;cmd&gt; [&lt;arg&gt;...] git bisect help</pre> </div> </div> <div class="paragraph"> <p>Cette commande utilise un algorithme de recherche binaire pour trouver quel commit dans l&#8217;historique de votre projet a introduit un bogue. Vous l&#8217;utilisez en lui indiquant d&#8217;abord un "mauvais" commit qui est connu pour contenir le bogue, et un "bon" commit qui est connu pour être avant que le bogue ne soit introduit. Ensuite, <code>git bisect</code> choisit un commit entre ces deux points de terminaison et vous demande si le commit sélectionné est" bon "ou" mauvais ". Il continue de réduire la plage jusqu&#8217;à ce qu&#8217;il trouve le commit exact qui a introduit le changement coupable.</p> </div> <div class="paragraph"> <p>En fait, « git bisect » peut être utilisé pour trouver le commit qui a changé <strong>n’importe quelle</strong> propriété de votre projet ; par exemple, le commit qui a corrigé un bogue, ou le commit qui a causé l’amélioration des performances d’un benchmark. Pour gérer cette utilisation plus générale, les termes "old" (ancien) et "new" (nouveau) peuvent être utilisés à la place de "bad" (mauvais) et "good" (bon), ou vous pouvez choisir vos propres termes. Voir la section « Autres termes » ci-dessous pour plus d’informations.</p> </div> <div class="sect2"> <h3 id="_commandes_bisect_de_base_start_bad_good"><a class="anchor" href="#_commandes_bisect_de_base_start_bad_good"></a>Commandes bisect de base : start, bad, good</h3> <div class="paragraph"> <p>À titre d’exemple, supposons que vous essayez de trouver le commit qui a cassé une fonctionnalité qui était connue pour fonctionner dans la version <code>v2.6.13-rc2</code> de votre projet. Vous démarrez une session de bissection comme suit :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect start $ git bisect bad # La version actuelle est mauvaise $ git bisect good v2.6.13-rc2 # v2.6.13-rc2 est réputée correcte</pre> </div> </div> <div class="paragraph"> <p>Une fois que vous avez spécifié au moins un mauvais et un bon commit, <code>git bisect</code> sélectionne un commit au milieu de cette plage d&#8217;historique, l&#8217;extrait et affiche quelque chose de similaire à ce qui suit :</p> </div> <div class="listingblock"> <div class="content"> <pre>Bisection : 675 révisions restantes à tester après cela (environ 10 étapes)</pre> </div> </div> <div class="paragraph"> <p>Vous devez maintenant compiler la version extraite et la tester. Si cette version fonctionne correctement, tapez</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect good</pre> </div> </div> <div class="paragraph"> <p>Si cette version est cassée, tapez</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect bad</pre> </div> </div> <div class="paragraph"> <p>Ensuite, <code>git bisect</code> répondra par quelque chose comme</p> </div> <div class="listingblock"> <div class="content"> <pre>Bisection : 337 révisions restantes à tester après cela (environ 9 étapes)</pre> </div> </div> <div class="paragraph"> <p>Continuez à répéter le processus : compiler l’arbre, le tester, et selon qu’il est bon ou mauvais lancer <code>git bisect good</code> ou <code>git bisect bad</code> pour demander le prochain commit qui a besoin d’être testé.</p> </div> <div class="paragraph"> <p>Finalement, il ne restera plus de révisions à inspecter et la commande affichera une description du premier mauvais commit. La référence <code>refs/bisect/bad</code> sera laissée pointant vers ce commit.</p> </div> </div> <div class="sect2"> <h3 id="_bisect_reset"><a class="anchor" href="#_bisect_reset"></a>Bisect reset</h3> <div class="paragraph"> <p>Après une session de bissection, pour nettoyer l&#8217;état de bissection et revenir à la HEAD d&#8217;origine, exécutez la commande suivante :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect reset</pre> </div> </div> <div class="paragraph"> <p>Par défaut, cela retournera votre arbre à la validation qui a été vérifiée avant le <code>git bisect start</code>. (Un nouveau <code>git bisect start</code> fera également cela, car il nettoie l’ancien état de bissection.)</p> </div> <div class="paragraph"> <p>Avec un argument optionnel, vous pouvez revenir à un commit différent à la place :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect reset &lt;commit&gt;</pre> </div> </div> <div class="paragraph"> <p>Par exemple, <code>git bisect reset bisect/bad</code> extraira la première mauvaise révision, tandis que <code>git bisect reset HEAD</code> vous laissera sur le commit de bissection actuel et évitera du tout de changer de commits.</p> </div> </div> <div class="sect2"> <h3 id="_termes_alternatifs"><a class="anchor" href="#_termes_alternatifs"></a>Termes alternatifs</h3> <div class="paragraph"> <p>Parfois, vous n’êtes pas à la recherche du commit qui a introduit une rupture, mais plutôt pour un commit qui a causé un changement entre un autre « vieil » état et « nouvel » état. Par exemple, vous pouvez être à la recherche du commit qui a introduit un correctif particulier. Ou vous pouvez être à la recherche du premier commit dans lequel les noms de fichiers de code source ont finalement tous été convertis à la norme de nommage de votre entreprise. Ou quoi que ce soit.</p> </div> <div class="paragraph"> <p>Dans de tels cas, il peut être très déroutant d’utiliser les termes "good" (« bon ») et "bad" (« mauvais ») pour désigner « l’état avant le changement » et « l’état après le changement ». Ainsi, au lieu de cela, vous pouvez utiliser les termes "old" (« ancien ») et "new" (« nouveau »), respectivement, à la place de "good" et "bad". (Mais notez que vous ne pouvez pas mélanger "good" et "bad" avec "old" et "new" dans une seule session.)</p> </div> <div class="paragraph"> <p>Dans cette utilisation plus générale, vous fournissez à <code>git bisect</code> un « nouveau » commit qui a une certaine propriété et un « vieux » commit qui n’a pas cette propriété. Chaque fois que <code>git bisect</code> vérifie un commit, vous testez si ce commit a la propriété. Si c’est le cas, marquer le commit comme « nouveau » ; sinon, marquez-le comme « vieux ». Lorsque la bissection est terminée, <code>git bisect</code> signalera quel commit introduit la propriété.</p> </div> <div class="paragraph"> <p>Pour utiliser "ancien" et "nouveau" au lieu de "bon" et "mauvais", vous devez exécuter <code>git bisect start</code> sans commit en tant qu&#8217;argument et ensuite exécuter la commande suivante pour ajouter les commits :</p> </div> <div class="listingblock"> <div class="content"> <pre>git bisect old [&lt;rév&gt;]</pre> </div> </div> <div class="paragraph"> <p>pour indiquer que le commit était avant le changement envisagé, ou</p> </div> <div class="listingblock"> <div class="content"> <pre>git bisect new [&lt;rév&gt;...]</pre> </div> </div> <div class="paragraph"> <p>pour indiquer qu&#8217;il était avant.</p> </div> <div class="paragraph"> <p>Pour obtenir un récapitulatif des termes utilisés actuellement, utiliser</p> </div> <div class="listingblock"> <div class="content"> <pre>git bisect terms</pre> </div> </div> <div class="paragraph"> <p>Vous pouvez obtenir juste l&#8217;ancien terme avec <code>git bisect terms --term-old</code> ou <code>git bisect terms --term-good</code> ; <code>git bisect terms --term-new</code> et <code>git bisect terms --term-bad</code> peuvent être utilisés pour apprendre comment appeler les commits plus récents que la modification recherchée.</p> </div> <div class="paragraph"> <p>Si vous souhaitez utiliser vos propres termes au lieu de "bad"/"good" ou "new"/"old", vous pouvez choisir les noms que vous voulez (sauf les sous-commandes de bisect existantes comme <code>reset</code>, <code>start</code>, &#8230;&#8203;) en commençant la bissection par</p> </div> <div class="listingblock"> <div class="content"> <pre>git bisect start --term-old &lt;ancien-terme&gt; --term-new &lt;nouveau-terme&gt;</pre> </div> </div> <div class="paragraph"> <p>Par exemple, si vous recherchez un commit qui a introduit une régression de performance, vous pouvez utiliser</p> </div> <div class="listingblock"> <div class="content"> <pre>git bisect start --term-old rapide --term-new lent</pre> </div> </div> <div class="paragraph"> <p>Ou si vous cherchez le commit qui a corrigé un bogue, vous pouvez utiliser</p> </div> <div class="listingblock"> <div class="content"> <pre>git bisect start --term-new corrige --term-old casse</pre> </div> </div> <div class="paragraph"> <p>Ensuite, utiliser <code>git bisect &lt;ancien-terme&gt;</code> et <code>git bisect &lt;nouveau-terme&gt;</code> à la place de <code>git bisect bon</code> et <code>git bisect mauvais</code> pour marquer les commits.</p> </div> </div> <div class="sect2"> <h3 id="_visualisationvue_de_bissection"><a class="anchor" href="#_visualisationvue_de_bissection"></a>Visualisation/vue de bissection</h3> <div class="paragraph"> <p>Pour voir les suspects restants dans <em>gitk</em>, lancez la commande suivante pendant le processus de bisection (la sous-commande <code>view</code> peut être utilisée comme alternative à <code>visualize</code>) :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect visualize</pre> </div> </div> <div class="paragraph"> <p>Git détecte un environnement graphique à travers diverses variables d&#8217;environnement : <code>DISPLAY</code>, qui est défini dans les environnements X Window System sur les systèmes Unix. <code>SESSIONNAME</code>, qui est défini sous Cygwin dans des sessions de bureau interactives. <code>MSYSTEM</code>, qui est défini sous Msys2 et Git pour Windows. <code>SECURITYSESSIONID</code>, qui peut être défini sur le macOS lors de sessions de bureau interactives.</p> </div> <div class="paragraph"> <p>Si aucune de ces variables d&#8217;environnement n&#8217;est pas définie, <em>git log</em> est utilisé à la place. Vous pouvez également donner des options de ligne de commande telles que <code>-p</code> et`--stat`.</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect visualize --stat</pre> </div> </div> </div> <div class="sect2"> <h3 id="_bisect_log_et_bisect_replay"><a class="anchor" href="#_bisect_log_et_bisect_replay"></a>Bisect log et bisect replay</h3> <div class="paragraph"> <p>Après avoir marqué les révisions comme bonnes ou mauvaises, donnez l&#8217;ordre suivant pour montrer ce qui a été fait jusqu&#8217;à présent :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect log</pre> </div> </div> <div class="paragraph"> <p>Si vous découvrez que vous avez fait une erreur en spécifiant l&#8217;état d&#8217;une révision, vous pouvez enregistrer la sortie de cette commande dans un fichier, la modifier pour supprimer les entrées incorrectes, puis émettre les commandes suivantes pour revenir à un état corrigé :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect reset $ git bisect replay ce-fichier</pre> </div> </div> </div> <div class="sect2"> <h3 id="_éviter_le_test_dun_commit"><a class="anchor" href="#_éviter_le_test_dun_commit"></a>Éviter le test d&#8217;un commit</h3> <div class="paragraph"> <p>Si, au milieu d&#8217;une session bisect, vous savez que la révision suggérée n&#8217;est pas bonne à tester (par exemple, elle ne parvient pas à se construire et vous savez que l&#8217;échec n&#8217;a rien à voir avec le bogue que vous poursuivez), vous pouvez sélectionner manuellement une validation proche et tester celle-ci à la place.</p> </div> <div class="paragraph"> <p>Par exemple :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect good/bad # le round précédent était good ou bad Bisecting: 337 revisions left to test after this (roughly 9 steps) $ git bisect visualize # oh.. C'est sans intérêt $ git reset --hard HEAD~3 # essayer 3 révision avant ce qui # a été suggéré</pre> </div> </div> <div class="paragraph"> <p>Ensuite, compilez et testez la révision choisie, puis marquez la révision comme bonne ou mauvaise de la manière habituelle.</p> </div> </div> <div class="sect2"> <h3 id="_saut_de_bisect"><a class="anchor" href="#_saut_de_bisect"></a>Saut de Bisect</h3> <div class="paragraph"> <p>Au lieu de choisir vous-même un commit proche, vous pouvez demander à Git de le faire pour vous en émettant la commande :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect skip # Cette révision ne peut pas être testée</pre> </div> </div> <div class="paragraph"> <p>Cependant, si vous sautez un commit adjacent à celui que vous recherchez, Git ne pourra pas dire exactement lequel de ces commits était le premier mauvais.</p> </div> <div class="paragraph"> <p>Vous pouvez également sauter une série de commits, au lieu d&#8217;un seul, en utilisant la notation de plage. Par exemple :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect skip v2.5..v2.6</pre> </div> </div> <div class="paragraph"> <p>Cela indique au processus bisect qu&#8217;aucun commit après <code>v2.5</code>, jusqu&#8217;à <code>v2.6</code> inclus, ne doit être testé.</p> </div> <div class="paragraph"> <p>Notez que si vous souhaitez également sauter le premier commit de la plage, vous devrez émettre la commande :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect skip v2.5 v2.5..v2.6</pre> </div> </div> <div class="paragraph"> <p>Cela indique au processus de bissection que les commits entre <code>v2.5</code> et <code>v2.6</code> (inclus) doivent être ignorés.</p> </div> </div> <div class="sect2"> <h3 id="_réduire_la_bissection_en_donnant_plus_de_paramètres_au_début_de_la_bissection"><a class="anchor" href="#_réduire_la_bissection_en_donnant_plus_de_paramètres_au_début_de_la_bissection"></a>Réduire la bissection en donnant plus de paramètres au début de la bissection</h3> <div class="paragraph"> <p>Vous pouvez réduire davantage le nombre d&#8217;essais, si vous savez quelle partie de l&#8217;arbre est impliquée dans le problème que vous recherchez, en spécifiant les paramètres de spécificateur de chemin lors de la commande <code>bisect start</code> :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect start -- arch/i386 include/asm-i386</pre> </div> </div> <div class="paragraph"> <p>Si vous connaissez à l&#8217;avance plus d&#8217;un bon commit, vous pouvez réduire l&#8217;espace de bissection en spécifiant tous les bons commit immédiatement après le mauvais commit lorsque vous lancez la commande <code>bisect start</code> :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect start v2.6.20-rc6 v2.6.20-rc4 v2.6.20-rc1 -- # v2.6.20-rc6 est mauvaise # v2.6.20-rc4 and v2.6.20-rc1 sont bonnes</pre> </div> </div> </div> <div class="sect2"> <h3 id="_bisect_run"><a class="anchor" href="#_bisect_run"></a>Bisect run</h3> <div class="paragraph"> <p>Si vous avez un script qui peut dire si le code source actuel est bon ou mauvais, vous pouvez bissecter en émettant la commande :</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect run mon_script arguments</pre> </div> </div> <div class="paragraph"> <p>Notez que le script (<code>my_script</code> dans l&#8217;exemple ci-dessus) doit se terminer par le code 0 si le code source actuel est bon/ancien, et se terminer par un code entre 1 et 127 (inclus), sauf 125, si le code source actuel est mauvais/nouveau.</p> </div> <div class="paragraph"> <p>Tout autre code de sortie fera avorter le processus de bissection. Il convient de noter qu&#8217;un programme qui se termine par <code>exit(-1)</code> laisse $ ? = 255, (voir la page de manuel exit(3)), car la valeur est masquée avec <code>&amp; 0377</code>.</p> </div> <div class="paragraph"> <p>Le code de sortie spécial 125 doit être utilisé lorsque le code source actuel ne peut pas être testé. Si le script se termine avec ce code, la révision en cours sera ignorée (voir <code>git bisect skip</code> ci-dessus). 125 a été choisi comme la valeur la plus sensée à utiliser dans ce but, parce que 126 et 127 sont utilisés par les shells POSIX pour signaler un statut d&#8217;erreur spécifique (127 indique une commande non trouvée, 126 indique une commande trouvée mais non exécutable - ces détails n&#8217;ont pas d&#8217;importance, car ce sont des erreurs normales dans le script, en ce qui concerne le <code>bisect run</code>).</p> </div> <div class="paragraph"> <p>Vous pouvez souvent constater que pendant une session bisect, vous souhaitez que des modifications temporaires (par exemple s/#define DEBUG 0/#define DEBUG 1/ dans un fichier d&#8217;en-tête, ou "la révision qui n&#8217;a pas ce commit a besoin que ce patch soit appliqué pour contourner un autre problème qui n&#8217;intéresse pas cette bisection") soient appliquées à la révision testée.</p> </div> <div class="paragraph"> <p>Pour faire face à une telle situation, une fois que le <em>git bisect</em> interne a trouvé la prochaine révision à tester, le script peut appliquer le patch avant la compilation, exécuter le vrai test, puis décider si la révision (éventuellement avec la rustine nécessaire) a passé le test et ensuite rembobiner l&#8217;arbre à l&#8217;état vierge. Enfin, le script doit se terminer avec l&#8217;état du test réel pour laisser la boucle de commande <code>git bisect run</code> déterminer le résultat final de la session bisect.</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="_options"><a class="anchor" href="#_options"></a>OPTIONS</h2> <div class="sectionbody"> <div class="dlist"> <dl> <dt class="hdlist1" id="git-bisect---no-checkout"> <a class="anchor" href="#git-bisect---no-checkout"></a>--no-checkout </dt> <dd> <div class="paragraph"> <p>Ne pas extraire le nouvel arbre de travail à chaque itération du processus de bissection. Mettre plutôt à jour la référence nommée <code>BISECT_HEAD</code> pour qu&#8217;elle pointe vers le commit qui doit être testé.</p> </div> <div class="paragraph"> <p>Cette option peut être utile lorsque le test que vous effectueriez à chaque étape ne nécessite pas une extraction d&#8217;arbre.</p> </div> <div class="paragraph"> <p>Si le dépôt est vide, <code>--no-checkout</code> est supposé.</p> </div> </dd> <dt class="hdlist1" id="git-bisect---first-parent"> <a class="anchor" href="#git-bisect---first-parent"></a>--first-parent </dt> <dd> <div class="paragraph"> <p>Suivre uniquement le premier commit parent lors d&#8217;un commit de fusion.</p> </div> <div class="paragraph"> <p>En détectant les régressions introduites par la fusion d&#8217;une branche, le commit de fusion sera identifié comme l&#8217;introduction du bug et ses ancêtres seront ignorés.</p> </div> <div class="paragraph"> <p>Cette option est particulièrement utile pour éviter les faux positifs lorsqu&#8217;une branche fusionnée contenait des commits cassés ou non constructibles, mais que la fusion elle-même était OK.</p> </div> </dd> </dl> </div> </div> </div> <div class="sect1"> <h2 id="_exemples"><a class="anchor" href="#_exemples"></a>EXEMPLES</h2> <div class="sectionbody"> <div class="ulist"> <ul> <li> <p>Bissecte automatiquement une construction non fonctionnelle entre la v1.2 et HEAD :</p> <div class="listingblock"> <div class="content"> <pre>$ git bisect start HEAD v1.2 -- # HEAD est mauvaise, v1.2 is bonne $ git bisect run make # "make" construit l'application $ git bisect reset # quitter la session bisect</pre> </div> </div> </li> <li> <p>Bisection automatique d&#8217;un échec de test entre origin et HEAD :</p> <div class="listingblock"> <div class="content"> <pre>$ git bisect start HEAD origin -- # HEAD est mauvaise, origin est bonne $ git bisect run make test # "make test" construit et teste $ git bisect reset # quitter la session bisect</pre> </div> </div> </li> <li> <p>Bissecte automatiquement un cas de test en échec :</p> <div class="listingblock"> <div class="content"> <pre>$ cat ~/test.sh #!/bin/sh make || exit 125 # ceci saute la construction cassée ~/check_test_case.sh # est-ce que le test passe ? $ git bisect start HEAD HEAD~10 -- # le coupable est parmi les 10 derniers $ git bisect run ~/test.sh $ git bisect reset # quitter la session bisect</pre> </div> </div> <div class="paragraph"> <p>Ici, nous utilisons un script personnalisé <code>test.sh</code>. Dans ce script, si <code>make</code> échoue, nous sautons le commit en cours. Le script <code>check_test_case.sh</code> devrait <code>exit 0</code> si le test passe, et <code>exit 1</code> sinon.</p> </div> <div class="paragraph"> <p>C&#8217;est plus sûr si <code>test.sh</code> et <code>check_test_case.sh</code> sont tous deux en dehors du dépôt pour éviter les interactions entre les processus de bissection, de fabrication et de test et les scripts.</p> </div> </li> <li> <p>Bisection automatique avec modifications temporaires (hot-fix) :</p> <div class="listingblock"> <div class="content"> <pre>$ cat ~/test.sh #!/bin/sh # bricole l'arbre de travail en fusionnant une branche hot-fix # puis tente de construire if git merge --no-commit --no-ff hot-fix &amp;&amp; make then # lance le test spécifique au projet et rapporter son état ~/check_test_case.sh status=$? else # indique à l'appelant que ce n'est pas testable status=125 fi # défait le bricolage pour permettre de basculer proprement sur le prochain commit git reset --hard # redonne le contrôle exit $status</pre> </div> </div> <div class="paragraph"> <p>Cela s&#8217;applique les modifications d&#8217;une branche hot-fix avant chaque exécution de test, par exemple au cas où votre environnement de construction ou de test a changé de sorte que les anciennes révisions peuvent nécessiter un correctif que les nouvelles ont déjà. (Assurez-vous que la branche des correctifs est basée sur un commit qui est contenu dans toutes les révisions que vous coupez en deux, de sorte que la fusion n&#8217;en tire pas trop, ou utilisez <code>git cherry-pick</code> au lieu de <code>git merge</code>).</p> </div> </li> <li> <p>Bissecte automatiquement un cas de test en échec :</p> <div class="listingblock"> <div class="content"> <pre>$ git bisect start HEAD HEAD~10 -- # le coupable est parmi les dix derniers $ git bisect run sh -c "make || exit 125; ~/check_test_case.sh" $ git bisect reset # quitter la session bisect</pre> </div> </div> <div class="paragraph"> <p>Ceci montre que vous pouvez vous passer d’un script si vous écrivez le test sur une seule ligne.</p> </div> </li> <li> <p>Localise une bonne région du graphe d&#8217;objets dans un dépôt endommagé</p> <div class="listingblock"> <div class="content"> <pre>$ git bisect start HEAD &lt;bon-commit-connu&gt; [ &lt;commit-frontière&gt; ... ] --no-checkout $ git bisect run sh -c ' GOOD=$(git for-each-ref "--format=%(objectname)" refs/bisect/good-*) &amp;&amp; git rev-list --objects BISECT_HEAD --not $GOOD &gt;tmp.$$ &amp;&amp; git pack-objects --stdout &gt;/dev/null &lt;tmp.$$ rc=$? rm -f tmp.$$ test $rc = 0' $ git bisect reset # quitter la session bisect</pre> </div> </div> <div class="paragraph"> <p>Dans ce cas, lorsque <em>git bisect run</em> se termine, bisect/bad fera référence à un commit qui a au moins un parent dont le graphe accessible est entièrement traversable dans le sens requis par <em>git pack objects</em>.</p> </div> </li> <li> <p>Rechercher un correctif au lieu d&#8217;une régression dans le code</p> <div class="listingblock"> <div class="content"> <pre>$ git bisect start $ git bisect new HEAD # le commit est maqué comme nouveau $ git bisect old HEAD~10 # le dixième commit en amont est marqué comme vieux</pre> </div> </div> <div class="paragraph"> <p>ou :</p> </div> </li> </ul> </div> <div class="listingblock"> <div class="content"> <pre>$ git bisect start --term-old broken --term-new fixed $ git bisect fixed $ git bisect broken HEAD~10</pre> </div> </div> <div class="sect2"> <h3 id="_obtenir_de_laide"><a class="anchor" href="#_obtenir_de_laide"></a>Obtenir de l’aide</h3> <div class="paragraph"> <p>Utilisez <code>git bisect</code> pour obtenir une courte description d&#8217;utilisation, et <code>git bisect help</code> ou <code>git bisect -h</code> pour obtenir une longue description d&#8217;utilisation.</p> </div> </div> </div> </div> <div class="sect1"> <h2 id="_voir_aussi"><a class="anchor" href="#_voir_aussi"></a>VOIR AUSSI</h2> <div class="sectionbody"> <div class="paragraph"> <p><a href="/docs/git-bisect-lk2009/fr">Combattre les régressions avec git bisect</a>, <a href='/docs/git-blame/fr'>git-blame[1]</a>.</p> </div> </div> </div> <div class="sect1"> <h2 id="_git"><a class="anchor" href="#_git"></a>GIT</h2> <div class="sectionbody"> <div class="paragraph"> <p>Fait partie de la suite <a href='/docs/git/fr'>git[1]</a></p> </div> </div> </div> <div class="sect1"> <h2 id="_traduction"><a class="anchor" href="#_traduction"></a>TRADUCTION</h2> <div class="sectionbody"> <div class="paragraph"> <p>Cette page de manuel a été traduite par Jean-Noël Avila &lt;jn.avila AT free DOT fr&gt; et les membres du projet git-manpages-l10n. Veuillez signaler toute erreur de traduction par un rapport de bogue sur le site <a href="https://github.com/jnavila/git-manpages-l10n" class="bare">https://github.com/jnavila/git-manpages-l10n</a> .</p> </div> </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/modernizr.js"></script> <script src="/js/modernize.js"></script> <script src="/js/application.min.js"></script> </div> </body> </html>

Pages: 1 2 3 4 5 6 7 8 9 10