CINXE.COM

Git - git-reset 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-reset 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-reset</strong> manual</header> <ol class='reference-previous-versions'> <li> <a href="/docs/git-reset"><span class="version">English</span> </a> </li> <li> <a href="/docs/git-reset/fr"><span class="version">Français</span> </a> </li> <li> <a href="/docs/git-reset/pt_BR"><span class="version">Português (Brasil)</span> </a> </li> <li> <a href="/docs/git-reset/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-reset last updated in 2.39.3</span> <div class='dropdown-panel left' id='previous-versions-dropdown'> <header>Changes in the <strong>git-reset</strong> manual</header> <ol class='reference-previous-versions'> <li class="no-change"><span>2.39.4 &rarr; 2.49.0 no changes</span></li> <li> <a href="/docs/git-reset/2.39.3"><span class="version">2.39.3</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/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">2023-04-17</em> </a> </li> <li class="no-change"><span>2.36.1 &rarr; 2.39.2 no changes</span></li> <li> <a href="/docs/git-reset/2.36.0"><span class="version">2.36.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/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">2022-04-18</em> </a> </li> <li class="no-change"><span>2.34.1 &rarr; 2.35.8 no changes</span></li> <li> <a href="/docs/git-reset/2.34.0"><span class="version">2.34.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/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">2021-11-15</em> </a> </li> <li class="no-change"><span>2.27.1 &rarr; 2.33.8 no changes</span></li> <li> <a href="/docs/git-reset/2.27.0"><span class="version">2.27.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">2020-06-01</em> </a> </li> <li class="no-change"><span>2.25.1 &rarr; 2.26.3 no changes</span></li> <li> <a href="/docs/git-reset/2.25.0"><span class="version">2.25.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">2020-01-13</em> </a> </li> <li class="no-change"><span>2.23.1 &rarr; 2.24.4 no changes</span></li> <li> <a href="/docs/git-reset/2.23.0"><span class="version">2.23.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/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-08-16</em> </a> </li> <li class="no-change"><span>2.22.1 &rarr; 2.22.5 no changes</span></li> <li> <a href="/docs/git-reset/2.22.0"><span class="version">2.22.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">2019-06-07</em> </a> </li> <li class="no-change"><span>2.21.1 &rarr; 2.21.4 no changes</span></li> <li> <a href="/docs/git-reset/2.21.0"><span class="version">2.21.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/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-02-24</em> </a> </li> <li class="no-change"><span>2.20.1 &rarr; 2.20.5 no changes</span></li> <li> <a href="/docs/git-reset/2.20.0"><span class="version">2.20.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/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">2018-12-09</em> </a> </li> <li class="no-change"><span>2.15.4 &rarr; 2.19.6 no changes</span></li> <li> <a href="/docs/git-reset/2.14.6"><span class="version">2.14.6</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">2019-12-06</em> </a> </li> <li> <a href="/docs/git-reset/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> <a href="/docs/git-reset/2.12.5"><span class="version">2.12.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">2017-09-22</em> </a> </li> <li class="no-change"><span>2.1.4 &rarr; 2.11.4 no changes</span></li> <li> <a href="/docs/git-reset/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-reset - Réinitialise la HEAD actuelle à l&#8217;état spécifié</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 reset</em> [-q] [&lt;arbre-esque&gt;] [--] &lt;spec-de-chemin&gt;&#8230;&#8203; <em>git reset</em> [-q] [--pathspec-from-file=&lt;fichier&gt; [--pathspec-file-nul]] [&lt;arbre-esque&gt;] <em>git reset</em> (--patch | -p) [&lt;arbre-esque&gt;] [--] [&lt;spec-de-chemin&gt;&#8230;&#8203;] <em>git reset</em> [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [&lt;commit&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>Dans la première et la troisième forme, cette commande copie les entrées depuis <code>&lt;arbre-esque&gt;</code> vers l&#8217;index. Dans la dernière forme, elle amène le sommet de la branche actuelle (<code>HEAD</code>) à <code>&lt;commit&gt;</code>, optionnellement en modifiant l&#8217;index et l&#8217;arbre de travail en correspondance. L'<code>&lt;arbre-esque&gt;</code>/<code>&lt;commit&gt;</code> vaut par défaut <code>HEAD</code> dans toutes les formes.</p> </div> <div class="dlist"> <dl> <dt class="hdlist1" id="git-reset-emgitresetem-qltarbre-esquegt--ltspec-de-chemingt82308203"> <a class="anchor" href="#git-reset-emgitresetem-qltarbre-esquegt--ltspec-de-chemingt82308203"></a><em>git reset</em> [-q] [&lt;arbre-esque&gt;] [--] &lt;spec-de-chemin&gt;&#8230;&#8203; </dt> <dt class="hdlist1" id="git-reset-emgitresetem-q--pathspec-from-fileltfichiergt--pathspec-file-nulltarbre-esquegt"> <a class="anchor" href="#git-reset-emgitresetem-q--pathspec-from-fileltfichiergt--pathspec-file-nulltarbre-esquegt"></a><em>git reset</em> [-q] [--pathspec-from-file=&lt;fichier&gt; [--pathspec-file-nul]] [&lt;arbre-esque&gt;] </dt> <dd> <p>Ces formes réinitialisent les entrées d&#8217;index pour tous fichiers correspondant à &lt;spec-de-chemin&gt; à leur état de <code>&lt;arbre-esque&gt;</code> (ceci n&#8217;affecte pas l&#8217;arbre de travail ou la branche actuelle.)</p> <div class="paragraph"> <p>Cela signifie que <code>git reset &lt;spec-de-chemin&gt;</code> est l&#8217;opposé de <code>git add &lt;spec-de-chemin&gt;</code>. Cette commande est équivalent à <code>git restore [--source=&lt;arbre-esque&gt;] --staged &lt;spec-de-chemin&gt;...</code>.</p> </div> <div class="paragraph"> <p>Après avoir lancé <code>git reset &lt;spec-de-chemin&gt;</code> pour mettre à jour l&#8217;entrée d&#8217;index, vous pouvez <a href='/docs/git-restore/fr'>git-restore[1]</a> pour extraire le contenu de l&#8217;index dans l&#8217;arbre de travail. Alternativement, en utilisant <a href='/docs/git-restore/fr'>git-restore[1]</a> et en spécifiant un commit avec <code>--source</code>, vous pouvez copier le contenu d&#8217;un chemin d&#8217;un commit vers l&#8217;index et l&#8217;arbre de travail d&#8217;une seule traite.</p> </div> </dd> <dt class="hdlist1" id="git-reset-emgitresetem--patch-pltarbre-esquegt--ltspec-de-chemingt82308203"> <a class="anchor" href="#git-reset-emgitresetem--patch-pltarbre-esquegt--ltspec-de-chemingt82308203"></a><em>git reset</em> (--patch | -p) [&lt;arbre-esque&gt;] [--] [&lt;spec-de-chemin&gt;&#8230;&#8203;] </dt> <dd> <p>Sélectionner interactivement les sections dans la différence entre l&#8217;index et l'&lt;arbre-esque&gt; (par défaut <code>HEAD</code>). Les sections choisies sont ensuite appliquées en ordre inversé à l&#8217;index.</p> <div class="paragraph"> <p>Ceci signifie que <code>git reset -p</code> est l&#8217;opposé de <code>git add -p</code>, autrement dit, vous pouvez l&#8217;utiliser pour réinitialiser sélectivement les sections. Voir la section « Mode interactif » de <a href='/docs/git-add/fr'>git-add[1]</a> pour apprendre comment utiliser le mode <code>--patch</code>.</p> </div> </dd> <dt class="hdlist1" id="git-reset-emgitresetemltmodegtltcommitgt"> <a class="anchor" href="#git-reset-emgitresetemltmodegtltcommitgt"></a><em>git reset</em> [&lt;mode&gt;] [&lt;commit&gt;] </dt> <dd> <p>Cette forme réinitialise le sommet de la branche actuelle à <code>&lt;commit&gt;</code> et met à jour l&#8217;index éventuellement (en le réinitialisant à l&#8217;arbre de <code>&lt;commit&gt;</code>) et l&#8217;arbre de travail en fonction de <code>&lt;mode&gt;</code>. Avant l&#8217;opération, <code>ORIG_HEAD</code> est définie sur le sommet de la branche actuelle. Si <code>&lt;mode&gt;</code> est omis, l&#8217;option par défaut est <code>--mixed</code>. Le mode est une valeur parmi :</p> <div class="openblock"> <div class="content"> <div class="dlist"> <dl> <dt class="hdlist1" id="git-reset---soft"> <a class="anchor" href="#git-reset---soft"></a>--soft </dt> <dd> <p>Ne pas toucher du tout le fichier d&#8217;index ou l&#8217;arbre de travail (mais réinitialise le sommet à <code>&lt;commit&gt;</code>, juste comme le font tous les modes). Cela laisse tous vos fichiers modifiés « Modifications qui seront validées », comme l&#8217;indiquerait <code>git status</code>.</p> </dd> <dt class="hdlist1" id="git-reset---mixed"> <a class="anchor" href="#git-reset---mixed"></a>--mixed </dt> <dd> <p>Réinitialiser l&#8217;index mais pas l&#8217;arbre de travail (c&#8217;est-à-dire, les fichiers modifiés sont préservés mais marqués pour la validation) et affiche ce qui n&#8217;a pas été mis à jour. C&#8217;est l&#8217;action par défaut.</p> <div class="paragraph"> <p>Si <code>-N</code> est spécifié, les chemins supprimés sont marqués comme « à ajouter » (voir <a href='/docs/git-add/fr'>git-add[1]</a>).</p> </div> </dd> <dt class="hdlist1" id="git-reset---hard"> <a class="anchor" href="#git-reset---hard"></a>--hard </dt> <dd> <p>Réinitialiser l&#8217;index et l&#8217;arbre de travail. Toute modification sur les fichiers suivis dans l&#8217;arbre de travail depuis <code>&lt;commit&gt;</code> est supprimée. Tous les fichiers ou répertoires non suivis qui empêchent l&#8217;écriture des fichiers suivis sont simplement supprimés.</p> </dd> <dt class="hdlist1" id="git-reset---merge"> <a class="anchor" href="#git-reset---merge"></a>--merge </dt> <dd> <p>Réinitialiser l&#8217;index et mettre à jour les fichiers de l&#8217;arbre de travail qui sont différents entre <code>&lt;commit&gt;</code> et <code>HEAD</code>, mais conserver ceux qui sont différents entre l&#8217;index et l&#8217;arbre de travail (c-à-d qui ont des modifications qui n&#8217;ont pas été indexés). Si un fichier qui est différent entre <code>&lt;commit&gt;</code> et l&#8217;index a des modifications non indexées, la réinitialisation est annulée.</p> <div class="paragraph"> <p>En d&#8217;autres termes, <code>--merge</code> fait quelque chose comme <code>git read-tree -u -m &lt;commit&gt;</code>, mais transfère les entrées d&#8217;index non indexées.</p> </div> </dd> <dt class="hdlist1" id="git-reset---keep"> <a class="anchor" href="#git-reset---keep"></a>--keep </dt> <dd> <p>Réinitialiser les entrées d&#8217;index et mettre à jour les fichiers dans l&#8217;arbre de travail qui sont différents entre <code>&lt;commit&gt;</code> et <code>HEAD</code>. Si un fichier qui est différent entre <code>&lt;commit&gt;</code> et <code>HEAD</code> a des modifications locales, la réinitialisation est annulée.</p> </dd> <dt class="hdlist1" id="git-reset---no-recurse-submodules"> <a class="anchor" href="#git-reset---no-recurse-submodules"></a>--[no-]recurse-submodules </dt> <dd> <p>Lorsque l&#8217;arbre de travail est mis à jour, l&#8217;utilisation de --recurse-submodules réinitialisera également de manière récursive l&#8217;arbre de travail de tous les sous-modules actifs en fonction du commit enregistré dans le superprojet, en définissant également la HEAD des sous-modules à détacher à ce commit.</p> </dd> </dl> </div> </div> </div> </dd> </dl> </div> <div class="paragraph"> <p>Voir « Reset, restore et revert » dans <a href='/docs/git/fr'>git[1]</a> pour les différences entre les trois commandes.</p> </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-reset--q"> <a class="anchor" href="#git-reset--q"></a>-q </dt> <dt class="hdlist1" id="git-reset---quiet"> <a class="anchor" href="#git-reset---quiet"></a>--quiet </dt> <dd> <p>mode silencieux, n&#8217;afficher que les messages d&#8217;erreur.</p> </dd> <dt class="hdlist1" id="git-reset---refresh"> <a class="anchor" href="#git-reset---refresh"></a>--refresh </dt> <dt class="hdlist1" id="git-reset---no-refresh"> <a class="anchor" href="#git-reset---no-refresh"></a>--no-refresh </dt> <dd> <p>Rafraîchir l&#8217;index après une réinitialisation mixte. Activé par défaut.</p> </dd> <dt class="hdlist1" id="git-reset---pathspec-from-fileltfichiergt"> <a class="anchor" href="#git-reset---pathspec-from-fileltfichiergt"></a>--pathspec-from-file=&lt;fichier&gt; </dt> <dd> <p>Le spécificateur de chemin est passé dans <code>&lt;fichier&gt;</code> au lieu des arguments de la ligne de commande. Si <code>&lt;fichier&gt;</code> vaut <code>-</code> alors l&#8217;entrée standard est utilisée. Les éléments du spécificateur de chemin sont séparés par LF ou CR/LF. Les éléments du spécificateur de chemin peuvent être cités comme expliqué pour la variable de configuration <code>core.quotePath</code> (voir <a href='/docs/git-config/fr'>git-config[1]</a>). Voir aussi l&#8217;option <code>--pathspec-file-nul</code> et l&#8217;option globale <code>--literal-pathspecs</code>.</p> </dd> <dt class="hdlist1" id="git-reset---pathspec-file-nul"> <a class="anchor" href="#git-reset---pathspec-file-nul"></a>--pathspec-file-nul </dt> <dd> <p>Uniquement significatif avec <code>--pathspec-from-file</code>. Les éléments du spécificateur de chemin sont séparés par le caractère NUL et tous les autres caractères sont utilisés littéralement (y compris les retours à la ligne et les guillemets).</p> </dd> <dt class="hdlist1" id="git-reset---"> <a class="anchor" href="#git-reset---"></a>-- </dt> <dd> <p>Ne pas interpréter les arguments qui suivent comme options.</p> </dd> <dt class="hdlist1" id="git-reset-ltspcificateurdechemingt82308203"> <a class="anchor" href="#git-reset-ltspcificateurdechemingt82308203"></a>&lt;spécificateur de chemin&gt;&#8230;&#8203; </dt> <dd> <p>Limite les chemins affectés par l&#8217;opération.</p> <div class="paragraph"> <p>Pour plus de détail, voir l&#8217;entrée <em>spécificateur de chemin</em> dans <a href='/docs/gitglossary/fr'>gitglossary[7]</a>.</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="dlist"> <dl> <dt class="hdlist1" id="git-reset-Dfaireunajout"> <a class="anchor" href="#git-reset-Dfaireunajout"></a>Défaire un ajout </dt> <dd> <div class="listingblock"> <div class="content"> <pre>$ edit <b class="conum">(1)</b> $ git add frotz.c filfre.c $ mailx <b class="conum">(2)</b> $ git reset <b class="conum">(3)</b> $ git pull git://info.example.com/ nitfol <b class="conum">(4)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Vous travaillez joyeusement sur quelque chose, et trouvez que les modifications dans ces fichiers sont prêtes. Vous ne voulez pas les voir lorsque vous lancez <code>git diff</code>, parce que vous allez travailler sur d&#8217;autres fichiers et les modifications à ces fichiers vous distrairaient de votre travail.</p> </li> <li> <p>Quelqu&#8217;un vous demande de tirer, et les modifications paraissent valoir le coup d&#8217;être fusionnées.</p> </li> <li> <p>Cependant, vous avez déjà sali l&#8217;index (c-à-d votre index ne correspond pas au commit <code>HEAD</code>). Mais vous savez que le tirage que vous allez faire n&#8217;affecte ni <code>frotz.c</code> ni <code>filfre.c</code>, donc vous rembobinez les modifications de l&#8217;index pour ces deux fichiers. Vos modifications dans l&#8217;arbre de travail restent là.</p> </li> <li> <p>Puis vous pouvez tirer et fusionner, en laissant les modifications à <code>frotz.c</code> et <code>filfre.c</code> dans l&#8217;arbre de travail.</p> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Dfaireuncommitetlerefaire"> <a class="anchor" href="#git-reset-Dfaireuncommitetlerefaire"></a>Défaire un commit et le refaire </dt> <dd> <div class="listingblock"> <div class="content"> <pre>$ git commit ... $ git reset --soft HEAD^ <b class="conum">(1)</b> $ éditer <b class="conum">(2)</b> $ git commit -a -c ORIG_HEAD <b class="conum">(3)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Cela sert le plus souvent quand vous vous êtes souvenu que ce que vous avez validé est incomplet, ou que vous avez mal orthographié votre message de validation, ou les deux. Cela laisse l&#8217;arbre de travail comme il était avant « reset ».</p> </li> <li> <p>Corrige les fichiers de l&#8217;arbre de travail.</p> </li> <li> <p>"reset" copie l&#8217;ancienne HEAD vers <code>.git/ORIG_HEAD</code> ; refait le commit en démarrant par son message de validation. Si vous n&#8217;avez pas besoin d&#8217;éditer plus le message, vous pouvez plutôt passer l&#8217;option <code>-C</code>.</p> <div class="paragraph"> <p>Voir aussi l&#8217;option <code>--amend</code> de <a href='/docs/git-commit/fr'>git-commit[1]</a>.</p> </div> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Dfairelecommitenletransformantenbranchethmatique"> <a class="anchor" href="#git-reset-Dfairelecommitenletransformantenbranchethmatique"></a>Défaire le commit, en le transformant en branche thématique </dt> <dd> <div class="listingblock"> <div class="content"> <pre>$ git branch theme/wip <b class="conum">(1)</b> $ git reset --hard HEAD~3 <b class="conum">(2)</b> $ git switch theme/wip <b class="conum">(3)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Vous avez fait des commits, mais vous vous êtes aperçu qu&#8217;ils étaient prématurés pour la branche <code>master</code>. Vous voulez continuer à le polir dans une branche thématique, donc vous créez la branche <code>theme/wip</code> de la <code>HEAD</code> actuelle.</p> </li> <li> <p>Rembobinez la branche <code>master</code> pour en éliminer ces trois commits.</p> </li> <li> <p>Basculez sur la branche <code>theme/wip</code> et continuez à travailler.</p> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Dfairedescommitdemanirepermanente"> <a class="anchor" href="#git-reset-Dfairedescommitdemanirepermanente"></a>Défaire des commit de manière permanente </dt> <dd> <div class="listingblock"> <div class="content"> <pre>$ git commit ... $ git reset --hard HEAD~3 <b class="conum">(1)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Les trois derniers commits (<code>HEAD</code>, <code>HEAD^</code> et <code>HEAD~2</code>) étaient mauvais et vous ne plus jamais les voir. <strong>Ne faites pas</strong> ceci si vous avez déjà fourni ces commits à quelqu&#8217;un d&#8217;autre. (Voir la section « RÉPARER UN REBASAGE AMONT » dans <a href='/docs/git-rebase/fr'>git-rebase[1]</a> pour les implications d&#8217;une telle action.)</p> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Dfaireunefusionouuntirage"> <a class="anchor" href="#git-reset-Dfaireunefusionouuntirage"></a>Défaire une fusion ou un tirage </dt> <dd> <div class="listingblock"> <div class="content"> <pre>$ git pull <b class="conum">(1)</b> Auto-fusion nitfol CONFLIT (contenu): Conflit de fusion dans nitfol La fusion automatique a échoué ; réglez les conflits et validez le résultat. $ git reset --hard <b class="conum">(2)</b> $ git pull . theme/branche <b class="conum">(3)</b> Avance rapide de 41223... sur 13134... $ git reset --hard ORIG_HEAD <b class="conum">(4)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>L&#8217;essai de mettre à jour depuis l&#8217;amont a apporté beaucoup de conflits ; vous n&#8217;êtes pas prêt à passer beaucoup de temps à les fusionner maintenant, donc vous décidez de le faire plus tard.</p> </li> <li> <p>"pull" n&#8217;a pas créé de commit de fusion, donc <code>git reset --hard</code> qui est synonyme de <code>git reset --hard HEAD</code> nettoie le bazar dans l&#8217;index et l&#8217;arbre de travail.</p> </li> <li> <p>Fusionne une branche thématique dans la branche actuelle, qui a résulté en une avance rapide.</p> </li> <li> <p>Mais vous avez décidé que la branche thématique n&#8217;est pas encore prête pour la publication. "pull" et "merge" laissent toujours le sommet originel de la branche actuelle dans <code>ORIG_HEAD</code>, donc la réinitialisation dure sur elle remet votre fichier d&#8217;index et l&#8217;arbre de travail à cet état et réinitialise le sommet de la branche à ce commit.</p> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Dfaireunefusionouuntiragedansunarbredetravailsale"> <a class="anchor" href="#git-reset-Dfaireunefusionouuntiragedansunarbredetravailsale"></a>Défaire une fusion ou un tirage dans un arbre de travail sale </dt> <dd> <div class="listingblock"> <div class="content"> <pre>$ git pull <b class="conum">(1)</b> Auto-merging nitfol Merge made by recursive. nitfol | 20 +++++---- ... $ git reset --merge ORIG_HEAD <b class="conum">(2)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Même si vous pouviez avoir des modifications locales dans votre arbre de travail, vous pouvez lancer <code>git pull</code> en toute sécurité quand vous savez que les modifications dans l&#8217;autre branche n&#8217;entrent pas en conflit avec elles.</p> </li> <li> <p>Après inspection du résultat de la fusion, vous pouvez trouver que cette modification dans l&#8217;autre branche n&#8217;est pas satisfaisante. Lancer <code>git reset --hard ORIG_HEAD</code> vous ramènera à l&#8217;état antérieur, mais cela éliminera aussi vos modifications locales, ce que vous ne désirez pas. <code>git reset --merge</code> conserve vos modifications locales.</p> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Interruptiondufluxdetravail"> <a class="anchor" href="#git-reset-Interruptiondufluxdetravail"></a>Interruption du flux de travail </dt> <dd> <div class="paragraph"> <p>Supposons que vous êtes interrompu par une demande urgente de correctif pendant que vous êtes au milieu d&#8217;une grande modification. Les fichiers dans votre arbre de travail ne sont pas du tout en état d&#8217;être validés, mais vous devez aller sur une autre branche pour votre correctif rapide.</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git switch feature ;# vous travailliez sur la branche feature $ travail travail ;# et arrive une interruption $ git commit -a -m "instantané en cours" <b class="conum">(1)</b> $ git switch master $ correctif correctif $ git commit ;# validation avec un vrai message $ git switch feature $ git reset --soft HEAD^ ;# retour au travail <b class="conum">(2)</b> $ git reset <b class="conum">(3)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Ce commit sera écrasé donc un message de validation jetable, c&#8217;est OK.</p> </li> <li> <p>Ceci élimine le commit « instantané » de l&#8217;historique des commits et met votre arbre de travail dans l&#8217;état précédent cet instantané.</p> </li> <li> <p>À ce point, le fichier d&#8217;index a toujours toutes les modifications en cours que vous avez validées comme « instantané en cours ». Ceci met à jour l&#8217;index pour afficher vos fichiers en cours d&#8217;édition comme non validés.</p> <div class="paragraph"> <p>Voir aussi <a href='/docs/git-stash/fr'>git-stash[1]</a>.</p> </div> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Rinitialiserunseulfichierdansl8217index"> <a class="anchor" href="#git-reset-Rinitialiserunseulfichierdansl8217index"></a>Réinitialiser un seul fichier dans l&#8217;index </dt> <dd> <div class="paragraph"> <p>Supposons que vous avez ajouté un fichier à votre index, mais décidez plus tard que vous ne voulez plus l&#8217;ajouter à votre validation. Vous pouvez retirer le fichier de l&#8217;index tout en conservant vos modifications avec git reset.</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git reset -- frotz.c <b class="conum">(1)</b> $ git commit -m "Validation de l'index" <b class="conum">(2)</b> $ git add frotz.c <b class="conum">(3)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Ceci supprime un fichier de l&#8217;index tout en le conservant dans le répertoire de travail.</p> </li> <li> <p>Ceci valide tous les autres fichiers dans l&#8217;index.</p> </li> <li> <p>Ajouter à nouveau le fichier à l&#8217;index.</p> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Conserverlesmodificationsdansl8217arbredetravailtoutenliminantlesvalidationsprcdentes"> <a class="anchor" href="#git-reset-Conserverlesmodificationsdansl8217arbredetravailtoutenliminantlesvalidationsprcdentes"></a>Conserver les modifications dans l&#8217;arbre de travail tout en éliminant les validations précédentes </dt> <dd> <div class="paragraph"> <p>Supposons que vous êtes en train de travailler sur quelque chose et que vous le validez, et qu&#8217;alors vous continuez à travailler un peu plus, mais vous pensez maintenant que ce que vous avez dans votre arbre de travail devrait aller dans une autre branche qui n&#8217;a rien à voir avec ce que vous avez validé précédemment. Vous pouvez commencer une nouvelle branche et la réinitialiser tout en conservant les modifications dans votre arbre de travail.</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git tag debut $ git switch -c branche1 $ édition $ git commit ... <b class="conum">(1)</b> $ édition $ git switch -c branche2 <b class="conum">(2)</b> $ git reset --keep debut <b class="conum">(3)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Ceci valide vos premières éditions dans <code>branche1</code>.</p> </li> <li> <p>Dans un monde idéal, vous pourriez avoir réalisé que le commit précédent n&#8217;appartenait pas au nouveau sujet quand vous avez créé et avez basculé sur <code>branche2</code> (c-à-d <code>git switch -c branche2 debut</code>), mais personne n&#8217;est parfait.</p> </li> <li> <p>Mais vous pouvez utiliser <code>reset --keep</code> pour retirer le commit non voulu après avoir basculé sur <code>branche2</code>.</p> </li> </ol> </div> </dd> <dt class="hdlist1" id="git-reset-Dcouperuncommitenunesquencedecommits"> <a class="anchor" href="#git-reset-Dcouperuncommitenunesquencedecommits"></a>Découper un commit en une séquence de commits </dt> <dd> <div class="paragraph"> <p>Supposons que vous avez créé de nombreuses modifications logiquement atomiques et les avez toutes validées ensemble. Plus tard, vous décidez qu&#8217;il serait mieux d&#8217;avoir chaque section logique associée à son propre commit. Vous pouvez utiliser git reset pour rembobiner l&#8217;historique sans changer le contenu de vos fichiers locaux, puis successivement utiliser <code>git add -p</code> pour sélectionner interactivement quelles sections inclure dans chaque validation, en utilisant <code>git commit -c</code> pour pré-charger le message de validation.</p> </div> <div class="listingblock"> <div class="content"> <pre>$ git reset -N HEAD^ <b class="conum">(1)</b> $ git add -p <b class="conum">(2)</b> $ git diff --cached <b class="conum">(3)</b> $ git commit -c HEAD@{1} <b class="conum">(4)</b> ... <b class="conum">(5)</b> $ git add ... <b class="conum">(6)</b> $ git diff --cached <b class="conum">(7)</b> $ git commit ... <b class="conum">(8)</b></pre> </div> </div> <div class="colist arabic"> <ol> <li> <p>Réinitialise d&#8217;abord l&#8217;historique en arrière d&#8217;un commit de manière à retirer le commit original, mais laisse l&#8217;arbre de travail avec toutes ses modifications. Le drapeau -N garantit que tous les nouveaux fichiers ajoutés avec <code>HEAD</code> sont toujours marqués de telle manière que <code>git add -p</code> les trouve.</p> </li> <li> <p>Ensuite, on sélectionne interactivement les sections de diff à ajouter en utilisant <code>git add -p</code>. Ceci vous demandera pour chaque section de diff l&#8217;une après l&#8217;autre et vous pouvez répondre simplement « oui, à inclure », « non, ne pas inclure » ou même utiliser la fonctionnalité puissante d&#8217;édition de la section.</p> </li> <li> <p>Une fois satisfait des sections à inclure, vous devriez vérifier ce qui a été préparé pour la première validation en utilisant <code>git diff --cached</code>. Cela montre toutes les modifications qui ont été indexées et sont sur le point d&#8217;être validées.</p> </li> <li> <p>Ensuite, valider les modifications stockées dans l&#8217;index. L&#8217;option <code>-c</code> indique de pré-remplir le message de validation avec le message original qui a servi au premier commit. C&#8217;est utile pour éviter de le retaper. Le <code>HEAD@{1}</code> est une notation spéciale pour le commit que <code>HEAD</code> a été avant le commit original réinitialisé (il y a une modification). Voir <a href='/docs/git-reflog/fr'>git-reflog[1]</a> pour plus de détails. Vous pouvez aussi utiliser une référence à tout autre commit valide.</p> </li> <li> <p>Vous pouvez répéter les étapes 2 à 4 plusieurs fois pour scinder le code original en un certain nombre de commits.</p> </li> <li> <p>Maintenant, vous avez séparé beaucoup des modifications dans leurs propres commits, et pourriez ne plus utiliser le mode patch du <code>git add</code> pour sélectionner toutes les modifications non validées restantes.</p> </li> <li> <p>Une fois de plus, vérifiez que vous avez inclus ce que vous souhaitez. Vous souhaitez peut-être vérifier que git diff ne montre aucune modification restante à valider plus tard.</p> </li> <li> <p>Et finalement crée le commit final.</p> </li> </ol> </div> </dd> </dl> </div> </div> </div> <div class="sect1"> <h2 id="_discussion"><a class="anchor" href="#_discussion"></a>DISCUSSION</h2> <div class="sectionbody"> <div class="paragraph"> <p>Les tables ci-dessous montrent ce qui arrive lorsqu&#8217;on lance :</p> </div> <div class="listingblock"> <div class="content"> <pre>git reset --option cible</pre> </div> </div> <div class="paragraph"> <p>pour réinitialiser <code>HEAD</code> à un autre commit (<code>cible</code>) avec des options de réinitialisation en fonction de l&#8217;état des fichiers.</p> </div> <div class="paragraph"> <p>Dans ces tableaux, <code>A</code>, <code>B</code>, <code>C</code> et <code>D</code> sont différents états d&#8217;un fichier. Par exemple, la première ligne du premier tableau signifie que si un fichier est dans l&#8217;état <code>A</code> dans l&#8217;arbre de travail, dans l&#8217;état <code>B</code> dans l&#8217;index, dans l&#8217;état <code>C</code> dans <code>HEAD</code> et dans l&#8217;état <code>D</code> dans la cible, alors <code>git reset --soft cible</code> laissera le fichier dans l&#8217;arbre de travail dans l&#8217;état <code>A</code> et dans l&#8217;index dans l&#8217;état <code>B</code>. Il réinitialise (c-à-d déplace) la <code>HEAD</code> (en d&#8217;autres termes le sommet de la branche actuelle, si vous êtes dessus) à <code>cible</code> (qui a le fichier dans l&#8217;état <code>D</code>).</p> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- A B C D --soft A B D --mixed A D D --hard D D D --merge (interdit) --keep (interdit)</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- A B C C --soft A B C --mixed A C C --hard C C C --merge (interdit) --keep A C C</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- B B C D --soft B B D --mixed B D D --hard D D D --merge D D D --keep (interdit)</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- B B C C --soft B B C --mixed B C C --hard C C C --merge C C C --keep B C C</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- B C C D --soft B C D --mixed B D D --hard D D D --merge (interdit) --keep (interdit)</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- B C C C --soft B C C --mixed B C C --hard C C C --merge B C C --keep B C C</pre> </div> </div> <div class="paragraph"> <p><code>reset --merge</code> est fait pour être utilisé lors de la réinitialisation d&#8217;une fusion conflictuelle. Toute opération de type fusion garantit que le fichier de l&#8217;arbre de travail qui est impliqué dans une fusion ne subit pas de modification locale par rapport à l&#8217;index avant son démarrage, et qu&#8217;elle écrit le résultat dans l&#8217;arbre de travail. Donc si nous voyons des différences entre l&#8217;index et la cible et aussi entre l&#8217;index et l&#8217;arbre de travail, alors cela signifie que nous ne réinitialisons pas depuis un état qu&#8217;une opération de type fusion a laissé après un échec de conflit. C&#8217;est pourquoi l&#8217;option <code>--merge</code> est interdite dans ce cas.</p> </div> <div class="paragraph"> <p><code>reset --keep</code> est fait pour être utilisé lors de la suppression d&#8217;un certain nombre des derniers commits dans la branche actuelle tout en conservant les modifications dans l&#8217;arbre de travail. S&#8217;il pouvait y avoir conflit entre les modifications dans le commit que nous souhaitons retirer et les modifications dans l&#8217;arbre de travail que nous souhaitons conserver, la réinitialisation est interdite. C&#8217;est pourquoi il est interdit s&#8217;il y a des modifications à la fois dans l&#8217;arbre de travail et dans <code>HEAD</code>, et entre <code>HEAD</code> et la cible. Pour plus de sécurité, c&#8217;est aussi interdit quand des entrées sont non fusionnées.</p> </div> <div class="paragraph"> <p>Le tableau suivant montre ce qui arrive quand il y a des entrées non fusionnées :</p> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- X U A B --soft (disallowed) --mixed X B B --hard B B B --merge B B B --keep (disallowed)</pre> </div> </div> <div class="literalblock"> <div class="content"> <pre>travail index HEAD cible travail index HEAD ---------------------------------------------------- X U A A --soft (interdit) --mixed X A A --hard A A A --merge A A A --keep (interdit)</pre> </div> </div> <div class="paragraph"> <p><code>X</code> signifie n&#8217;importe quel état et <code>U</code> signifie un index non fusionné.</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