<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
    "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
<head>
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=UTF-8" />
<meta name="generator" content="AsciiDoc 8.6.9" />
<title>git-reset(1)</title>
<style type="text/css">
/* Shared CSS for AsciiDoc xhtml11 and html5 backends */

/* Default font. */
body {
  font-family: Georgia,serif;
}

/* Title font. */
h1, h2, h3, h4, h5, h6,
div.title, caption.title,
thead, p.table.header,
#toctitle,
#author, #revnumber, #revdate, #revremark,
#footer {
  font-family: Arial,Helvetica,sans-serif;
}

body {
  margin: 1em 5% 1em 5%;
}

a {
  color: blue;
  text-decoration: underline;
}
a:visited {
  color: fuchsia;
}

em {
  font-style: italic;
  color: navy;
}

strong {
  font-weight: bold;
  color: #083194;
}

h1, h2, h3, h4, h5, h6 {
  color: #527bbd;
  margin-top: 1.2em;
  margin-bottom: 0.5em;
  line-height: 1.3;
}

h1, h2, h3 {
  border-bottom: 2px solid silver;
}
h2 {
  padding-top: 0.5em;
}
h3 {
  float: left;
}
h3 + * {
  clear: left;
}
h5 {
  font-size: 1.0em;
}

div.sectionbody {
  margin-left: 0;
}

hr {
  border: 1px solid silver;
}

p {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

ul, ol, li > p {
  margin-top: 0;
}
ul > li     { color: #aaa; }
ul > li > * { color: black; }

.monospaced, code, pre {
  font-family: "Courier New", Courier, monospace;
  font-size: inherit;
  color: navy;
  padding: 0;
  margin: 0;
}
pre {
  white-space: pre-wrap;
}

#author {
  color: #527bbd;
  font-weight: bold;
  font-size: 1.1em;
}
#email {
}
#revnumber, #revdate, #revremark {
}

#footer {
  font-size: small;
  border-top: 2px solid silver;
  padding-top: 0.5em;
  margin-top: 4.0em;
}
#footer-text {
  float: left;
  padding-bottom: 0.5em;
}
#footer-badges {
  float: right;
  padding-bottom: 0.5em;
}

#preamble {
  margin-top: 1.5em;
  margin-bottom: 1.5em;
}
div.imageblock, div.exampleblock, div.verseblock,
div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
div.admonitionblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
div.admonitionblock {
  margin-top: 2.0em;
  margin-bottom: 2.0em;
  margin-right: 10%;
  color: #606060;
}

div.content { /* Block element content. */
  padding: 0;
}

/* Block element titles. */
div.title, caption.title {
  color: #527bbd;
  font-weight: bold;
  text-align: left;
  margin-top: 1.0em;
  margin-bottom: 0.5em;
}
div.title + * {
  margin-top: 0;
}

td div.title:first-child {
  margin-top: 0.0em;
}
div.content div.title:first-child {
  margin-top: 0.0em;
}
div.content + div.title {
  margin-top: 0.0em;
}

div.sidebarblock > div.content {
  background: #ffffee;
  border: 1px solid #dddddd;
  border-left: 4px solid #f0f0f0;
  padding: 0.5em;
}

div.listingblock > div.content {
  border: 1px solid #dddddd;
  border-left: 5px solid #f0f0f0;
  background: #f8f8f8;
  padding: 0.5em;
}

div.quoteblock, div.verseblock {
  padding-left: 1.0em;
  margin-left: 1.0em;
  margin-right: 10%;
  border-left: 5px solid #f0f0f0;
  color: #888;
}

div.quoteblock > div.attribution {
  padding-top: 0.5em;
  text-align: right;
}

div.verseblock > pre.content {
  font-family: inherit;
  font-size: inherit;
}
div.verseblock > div.attribution {
  padding-top: 0.75em;
  text-align: left;
}
/* DEPRECATED: Pre version 8.2.7 verse style literal block. */
div.verseblock + div.attribution {
  text-align: left;
}

div.admonitionblock .icon {
  vertical-align: top;
  font-size: 1.1em;
  font-weight: bold;
  text-decoration: underline;
  color: #527bbd;
  padding-right: 0.5em;
}
div.admonitionblock td.content {
  padding-left: 0.5em;
  border-left: 3px solid #dddddd;
}

div.exampleblock > div.content {
  border-left: 3px solid #dddddd;
  padding-left: 0.5em;
}

div.imageblock div.content { padding-left: 0; }
span.image img { border-style: none; vertical-align: text-bottom; }
a.image:visited { color: white; }

dl {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
dt {
  margin-top: 0.5em;
  margin-bottom: 0;
  font-style: normal;
  color: navy;
}
dd > *:first-child {
  margin-top: 0.1em;
}

ul, ol {
    list-style-position: outside;
}
ol.arabic {
  list-style-type: decimal;
}
ol.loweralpha {
  list-style-type: lower-alpha;
}
ol.upperalpha {
  list-style-type: upper-alpha;
}
ol.lowerroman {
  list-style-type: lower-roman;
}
ol.upperroman {
  list-style-type: upper-roman;
}

div.compact ul, div.compact ol,
div.compact p, div.compact p,
div.compact div, div.compact div {
  margin-top: 0.1em;
  margin-bottom: 0.1em;
}

tfoot {
  font-weight: bold;
}
td > div.verse {
  white-space: pre;
}

div.hdlist {
  margin-top: 0.8em;
  margin-bottom: 0.8em;
}
div.hdlist tr {
  padding-bottom: 15px;
}
dt.hdlist1.strong, td.hdlist1.strong {
  font-weight: bold;
}
td.hdlist1 {
  vertical-align: top;
  font-style: normal;
  padding-right: 0.8em;
  color: navy;
}
td.hdlist2 {
  vertical-align: top;
}
div.hdlist.compact tr {
  margin: 0;
  padding-bottom: 0;
}

.comment {
  background: yellow;
}

.footnote, .footnoteref {
  font-size: 0.8em;
}

span.footnote, span.footnoteref {
  vertical-align: super;
}

#footnotes {
  margin: 20px 0 20px 0;
  padding: 7px 0 0 0;
}

#footnotes div.footnote {
  margin: 0 0 5px 0;
}

#footnotes hr {
  border: none;
  border-top: 1px solid silver;
  height: 1px;
  text-align: left;
  margin-left: 0;
  width: 20%;
  min-width: 100px;
}

div.colist td {
  padding-right: 0.5em;
  padding-bottom: 0.3em;
  vertical-align: top;
}
div.colist td img {
  margin-top: 0.3em;
}

@media print {
  #footer-badges { display: none; }
}

#toc {
  margin-bottom: 2.5em;
}

#toctitle {
  color: #527bbd;
  font-size: 1.1em;
  font-weight: bold;
  margin-top: 1.0em;
  margin-bottom: 0.1em;
}

div.toclevel0, div.toclevel1, div.toclevel2, div.toclevel3, div.toclevel4 {
  margin-top: 0;
  margin-bottom: 0;
}
div.toclevel2 {
  margin-left: 2em;
  font-size: 0.9em;
}
div.toclevel3 {
  margin-left: 4em;
  font-size: 0.9em;
}
div.toclevel4 {
  margin-left: 6em;
  font-size: 0.9em;
}

span.aqua { color: aqua; }
span.black { color: black; }
span.blue { color: blue; }
span.fuchsia { color: fuchsia; }
span.gray { color: gray; }
span.green { color: green; }
span.lime { color: lime; }
span.maroon { color: maroon; }
span.navy { color: navy; }
span.olive { color: olive; }
span.purple { color: purple; }
span.red { color: red; }
span.silver { color: silver; }
span.teal { color: teal; }
span.white { color: white; }
span.yellow { color: yellow; }

span.aqua-background { background: aqua; }
span.black-background { background: black; }
span.blue-background { background: blue; }
span.fuchsia-background { background: fuchsia; }
span.gray-background { background: gray; }
span.green-background { background: green; }
span.lime-background { background: lime; }
span.maroon-background { background: maroon; }
span.navy-background { background: navy; }
span.olive-background { background: olive; }
span.purple-background { background: purple; }
span.red-background { background: red; }
span.silver-background { background: silver; }
span.teal-background { background: teal; }
span.white-background { background: white; }
span.yellow-background { background: yellow; }

span.big { font-size: 2em; }
span.small { font-size: 0.6em; }

span.underline { text-decoration: underline; }
span.overline { text-decoration: overline; }
span.line-through { text-decoration: line-through; }

div.unbreakable { page-break-inside: avoid; }


/*
 * xhtml11 specific
 *
 * */

div.tableblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
div.tableblock > table {
  border: 3px solid #527bbd;
}
thead, p.table.header {
  font-weight: bold;
  color: #527bbd;
}
p.table {
  margin-top: 0;
}
/* Because the table frame attribute is overriden by CSS in most browsers. */
div.tableblock > table[frame="void"] {
  border-style: none;
}
div.tableblock > table[frame="hsides"] {
  border-left-style: none;
  border-right-style: none;
}
div.tableblock > table[frame="vsides"] {
  border-top-style: none;
  border-bottom-style: none;
}


/*
 * html5 specific
 *
 * */

table.tableblock {
  margin-top: 1.0em;
  margin-bottom: 1.5em;
}
thead, p.tableblock.header {
  font-weight: bold;
  color: #527bbd;
}
p.tableblock {
  margin-top: 0;
}
table.tableblock {
  border-width: 3px;
  border-spacing: 0px;
  border-style: solid;
  border-color: #527bbd;
  border-collapse: collapse;
}
th.tableblock, td.tableblock {
  border-width: 1px;
  padding: 4px;
  border-style: solid;
  border-color: #527bbd;
}

table.tableblock.frame-topbot {
  border-left-style: hidden;
  border-right-style: hidden;
}
table.tableblock.frame-sides {
  border-top-style: hidden;
  border-bottom-style: hidden;
}
table.tableblock.frame-none {
  border-style: hidden;
}

th.tableblock.halign-left, td.tableblock.halign-left {
  text-align: left;
}
th.tableblock.halign-center, td.tableblock.halign-center {
  text-align: center;
}
th.tableblock.halign-right, td.tableblock.halign-right {
  text-align: right;
}

th.tableblock.valign-top, td.tableblock.valign-top {
  vertical-align: top;
}
th.tableblock.valign-middle, td.tableblock.valign-middle {
  vertical-align: middle;
}
th.tableblock.valign-bottom, td.tableblock.valign-bottom {
  vertical-align: bottom;
}


/*
 * manpage specific
 *
 * */

body.manpage h1 {
  padding-top: 0.5em;
  padding-bottom: 0.5em;
  border-top: 2px solid silver;
  border-bottom: 2px solid silver;
}
body.manpage h2 {
  border-style: none;
}
body.manpage div.sectionbody {
  margin-left: 3em;
}

@media print {
  body.manpage div#toc { display: none; }
}


</style>
<script type="text/javascript">
/*<![CDATA[*/
var asciidoc = {  // Namespace.

/////////////////////////////////////////////////////////////////////
// Table Of Contents generator
/////////////////////////////////////////////////////////////////////

/* Author: Mihai Bazon, September 2002
 * http://students.infoiasi.ro/~mishoo
 *
 * Table Of Content generator
 * Version: 0.4
 *
 * Feel free to use this script under the terms of the GNU General Public
 * License, as long as you do not remove or alter this notice.
 */

 /* modified by Troy D. Hanson, September 2006. License: GPL */
 /* modified by Stuart Rackham, 2006, 2009. License: GPL */

// toclevels = 1..4.
toc: function (toclevels) {

  function getText(el) {
    var text = "";
    for (var i = el.firstChild; i != null; i = i.nextSibling) {
      if (i.nodeType == 3 /* Node.TEXT_NODE */) // IE doesn't speak constants.
        text += i.data;
      else if (i.firstChild != null)
        text += getText(i);
    }
    return text;
  }

  function TocEntry(el, text, toclevel) {
    this.element = el;
    this.text = text;
    this.toclevel = toclevel;
  }

  function tocEntries(el, toclevels) {
    var result = new Array;
    var re = new RegExp('[hH]([1-'+(toclevels+1)+'])');
    // Function that scans the DOM tree for header elements (the DOM2
    // nodeIterator API would be a better technique but not supported by all
    // browsers).
    var iterate = function (el) {
      for (var i = el.firstChild; i != null; i = i.nextSibling) {
        if (i.nodeType == 1 /* Node.ELEMENT_NODE */) {
          var mo = re.exec(i.tagName);
          if (mo && (i.getAttribute("class") || i.getAttribute("className")) != "float") {
            result[result.length] = new TocEntry(i, getText(i), mo[1]-1);
          }
          iterate(i);
        }
      }
    }
    iterate(el);
    return result;
  }

  var toc = document.getElementById("toc");
  if (!toc) {
    return;
  }

  // Delete existing TOC entries in case we're reloading the TOC.
  var tocEntriesToRemove = [];
  var i;
  for (i = 0; i < toc.childNodes.length; i++) {
    var entry = toc.childNodes[i];
    if (entry.nodeName.toLowerCase() == 'div'
     && entry.getAttribute("class")
     && entry.getAttribute("class").match(/^toclevel/))
      tocEntriesToRemove.push(entry);
  }
  for (i = 0; i < tocEntriesToRemove.length; i++) {
    toc.removeChild(tocEntriesToRemove[i]);
  }

  // Rebuild TOC entries.
  var entries = tocEntries(document.getElementById("content"), toclevels);
  for (var i = 0; i < entries.length; ++i) {
    var entry = entries[i];
    if (entry.element.id == "")
      entry.element.id = "_toc_" + i;
    var a = document.createElement("a");
    a.href = "#" + entry.element.id;
    a.appendChild(document.createTextNode(entry.text));
    var div = document.createElement("div");
    div.appendChild(a);
    div.className = "toclevel" + entry.toclevel;
    toc.appendChild(div);
  }
  if (entries.length == 0)
    toc.parentNode.removeChild(toc);
},


/////////////////////////////////////////////////////////////////////
// Footnotes generator
/////////////////////////////////////////////////////////////////////

/* Based on footnote generation code from:
 * http://www.brandspankingnew.net/archive/2005/07/format_footnote.html
 */

footnotes: function () {
  // Delete existing footnote entries in case we're reloading the footnodes.
  var i;
  var noteholder = document.getElementById("footnotes");
  if (!noteholder) {
    return;
  }
  var entriesToRemove = [];
  for (i = 0; i < noteholder.childNodes.length; i++) {
    var entry = noteholder.childNodes[i];
    if (entry.nodeName.toLowerCase() == 'div' && entry.getAttribute("class") == "footnote")
      entriesToRemove.push(entry);
  }
  for (i = 0; i < entriesToRemove.length; i++) {
    noteholder.removeChild(entriesToRemove[i]);
  }

  // Rebuild footnote entries.
  var cont = document.getElementById("content");
  var spans = cont.getElementsByTagName("span");
  var refs = {};
  var n = 0;
  for (i=0; i<spans.length; i++) {
    if (spans[i].className == "footnote") {
      n++;
      var note = spans[i].getAttribute("data-note");
      if (!note) {
        // Use [\s\S] in place of . so multi-line matches work.
        // Because JavaScript has no s (dotall) regex flag.
        note = spans[i].innerHTML.match(/\s*\[([\s\S]*)]\s*/)[1];
        spans[i].innerHTML =
          "[<a id='_footnoteref_" + n + "' href='#_footnote_" + n +
          "' title='View footnote' class='footnote'>" + n + "</a>]";
        spans[i].setAttribute("data-note", note);
      }
      noteholder.innerHTML +=
        "<div class='footnote' id='_footnote_" + n + "'>" +
        "<a href='#_footnoteref_" + n + "' title='Return to text'>" +
        n + "</a>. " + note + "</div>";
      var id =spans[i].getAttribute("id");
      if (id != null) refs["#"+id] = n;
    }
  }
  if (n == 0)
    noteholder.parentNode.removeChild(noteholder);
  else {
    // Process footnoterefs.
    for (i=0; i<spans.length; i++) {
      if (spans[i].className == "footnoteref") {
        var href = spans[i].getElementsByTagName("a")[0].getAttribute("href");
        href = href.match(/#.*/)[0];  // Because IE return full URL.
        n = refs[href];
        spans[i].innerHTML =
          "[<a href='#_footnote_" + n +
          "' title='View footnote' class='footnote'>" + n + "</a>]";
      }
    }
  }
},

install: function(toclevels) {
  var timerId;

  function reinstall() {
    asciidoc.footnotes();
    if (toclevels) {
      asciidoc.toc(toclevels);
    }
  }

  function reinstallAndRemoveTimer() {
    clearInterval(timerId);
    reinstall();
  }

  timerId = setInterval(reinstall, 500);
  if (document.addEventListener)
    document.addEventListener("DOMContentLoaded", reinstallAndRemoveTimer, false);
  else
    window.onload = reinstallAndRemoveTimer;
}

}
asciidoc.install();
/*]]>*/
</script>
</head>
<body class="manpage">
<div id="header">
<h1>
git-reset(1) Manual Page
</h1>
<h2>NAME</h2>
<div class="sectionbody">
<p>git-reset -
   Reset current HEAD to the specified state
</p>
</div>
</div>
<div id="content">
<div class="sect1">
<h2 id="_synopsis">SYNOPSIS</h2>
<div class="sectionbody">
<div class="verseblock">
<pre class="content"><em>git reset</em> [-q] [&lt;tree-ish&gt;] [--] &lt;paths&gt;&#8230;
<em>git reset</em> (--patch | -p) [&lt;tree-ish&gt;] [--] [&lt;paths&gt;&#8230;]
<em>git reset</em> [--soft | --mixed [-N] | --hard | --merge | --keep] [-q] [&lt;commit&gt;]</pre>
<div class="attribution">
</div></div>
</div>
</div>
<div class="sect1">
<h2 id="_description">DESCRIPTION</h2>
<div class="sectionbody">
<div class="paragraph"><p>In the first and second form, copy entries from &lt;tree-ish&gt; to the index.
In the third form, set the current branch head (HEAD) to &lt;commit&gt;, optionally
modifying index and working tree to match.  The &lt;tree-ish&gt;/&lt;commit&gt; defaults
to HEAD in all forms.</p></div>
<div class="dlist"><dl>
<dt class="hdlist1">
<em>git reset</em> [-q] [&lt;tree-ish&gt;] [--] &lt;paths&gt;&#8230;
</dt>
<dd>
<p>
        This form resets the index entries for all &lt;paths&gt; to their
        state at &lt;tree-ish&gt;.  (It does not affect the working tree or
        the current branch.)
</p>
<div class="paragraph"><p>This means that <code>git reset &lt;paths&gt;</code> is the opposite of <code>git add
&lt;paths&gt;</code>.</p></div>
<div class="paragraph"><p>After running <code>git reset &lt;paths&gt;</code> to update the index entry, you can
use <a href="git-checkout.html">git-checkout(1)</a> to check the contents out of the index to
the working tree.
Alternatively, using <a href="git-checkout.html">git-checkout(1)</a> and specifying a commit, you
can copy the contents of a path out of a commit to the index and to the
working tree in one go.</p></div>
</dd>
<dt class="hdlist1">
<em>git reset</em> (--patch | -p) [&lt;tree-ish&gt;] [--] [&lt;paths&gt;&#8230;]
</dt>
<dd>
<p>
        Interactively select hunks in the difference between the index
        and &lt;tree-ish&gt; (defaults to HEAD).  The chosen hunks are applied
        in reverse to the index.
</p>
<div class="paragraph"><p>This means that <code>git reset -p</code> is the opposite of <code>git add -p</code>, i.e.
you can use it to selectively reset hunks. See the &#8220;Interactive Mode&#8221;
section of <a href="git-add.html">git-add(1)</a> to learn how to operate the <code>--patch</code> mode.</p></div>
</dd>
<dt class="hdlist1">
<em>git reset</em> [&lt;mode&gt;] [&lt;commit&gt;]
</dt>
<dd>
<p>
        This form resets the current branch head to &lt;commit&gt; and
        possibly updates the index (resetting it to the tree of &lt;commit&gt;) and
        the working tree depending on &lt;mode&gt;. If &lt;mode&gt; is omitted,
        defaults to "--mixed". The &lt;mode&gt; must be one of the following:
</p>
<div class="openblock">
<div class="content">
<div class="dlist"><dl>
<dt class="hdlist1">
--soft
</dt>
<dd>
<p>
        Does not touch the index file or the working tree at all (but
        resets the head to &lt;commit&gt;, just like all modes do). This leaves
        all your changed files "Changes to be committed", as <em>git status</em>
        would put it.
</p>
</dd>
<dt class="hdlist1">
--mixed
</dt>
<dd>
<p>
        Resets the index but not the working tree (i.e., the changed files
        are preserved but not marked for commit) and reports what has not
        been updated. This is the default action.
</p>
<div class="paragraph"><p>If <code>-N</code> is specified, removed paths are marked as intent-to-add (see
<a href="git-add.html">git-add(1)</a>).</p></div>
</dd>
<dt class="hdlist1">
--hard
</dt>
<dd>
<p>
        Resets the index and working tree. Any changes to tracked files in the
        working tree since &lt;commit&gt; are discarded.
</p>
</dd>
<dt class="hdlist1">
--merge
</dt>
<dd>
<p>
        Resets the index and updates the files in the working tree that are
        different between &lt;commit&gt; and HEAD, but keeps those which are
        different between the index and working tree (i.e. which have changes
        which have not been added).
        If a file that is different between &lt;commit&gt; and the index has unstaged
        changes, reset is aborted.
</p>
<div class="paragraph"><p>In other words, --merge does something like a <em>git read-tree -u -m &lt;commit&gt;</em>,
but carries forward unmerged index entries.</p></div>
</dd>
<dt class="hdlist1">
--keep
</dt>
<dd>
<p>
        Resets index entries and updates files in the working tree that are
        different between &lt;commit&gt; and HEAD.
        If a file that is different between &lt;commit&gt; and HEAD has local changes,
        reset is aborted.
</p>
</dd>
</dl></div>
</div></div>
</dd>
</dl></div>
<div class="paragraph"><p>If you want to undo a commit other than the latest on a branch,
<a href="git-revert.html">git-revert(1)</a> is your friend.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_options">OPTIONS</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
-q
</dt>
<dt class="hdlist1">
--quiet
</dt>
<dd>
<p>
        Be quiet, only report errors.
</p>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_examples">EXAMPLES</h2>
<div class="sectionbody">
<div class="dlist"><dl>
<dt class="hdlist1">
Undo add
</dt>
<dd>
<div class="listingblock">
<div class="content">
<pre><code>$ edit                                     <b>&lt;1&gt;</b>
$ git add frotz.c filfre.c
$ mailx                                    <b>&lt;2&gt;</b>
$ git reset                                <b>&lt;3&gt;</b>
$ git pull git://info.example.com/ nitfol  <b>&lt;4&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
You are happily working on something, and find the changes
in these files are in good order.  You do not want to see them
when you run "git diff", because you plan to work on other files
and changes with these files are distracting.
</p>
</li>
<li>
<p>
Somebody asks you to pull, and the changes sounds worthy of merging.
</p>
</li>
<li>
<p>
However, you already dirtied the index (i.e. your index does
not match the HEAD commit).  But you know the pull you are going
to make does not affect frotz.c or filfre.c, so you revert the
index changes for these two files.  Your changes in working tree
remain there.
</p>
</li>
<li>
<p>
Then you can pull and merge, leaving frotz.c and filfre.c
changes still in the working tree.
</p>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Undo a commit and redo
</dt>
<dd>
<div class="listingblock">
<div class="content">
<pre><code>$ git commit ...
$ git reset --soft HEAD^      <b>&lt;1&gt;</b>
$ edit                        <b>&lt;2&gt;</b>
$ git commit -a -c ORIG_HEAD  <b>&lt;3&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
This is most often done when you remembered what you
just committed is incomplete, or you misspelled your commit
message, or both.  Leaves working tree as it was before "reset".
</p>
</li>
<li>
<p>
Make corrections to working tree files.
</p>
</li>
<li>
<p>
"reset" copies the old head to .git/ORIG_HEAD; redo the
commit by starting with its log message.  If you do not need to
edit the message further, you can give -C option instead.
</p>
<div class="paragraph"><p>See also the --amend option to <a href="git-commit.html">git-commit(1)</a>.</p></div>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Undo a commit, making it a topic branch
</dt>
<dd>
<div class="listingblock">
<div class="content">
<pre><code>$ git branch topic/wip     <b>&lt;1&gt;</b>
$ git reset --hard HEAD~3  <b>&lt;2&gt;</b>
$ git checkout topic/wip   <b>&lt;3&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
You have made some commits, but realize they were premature
to be in the "master" branch.  You want to continue polishing
them in a topic branch, so create "topic/wip" branch off of the
current HEAD.
</p>
</li>
<li>
<p>
Rewind the master branch to get rid of those three commits.
</p>
</li>
<li>
<p>
Switch to "topic/wip" branch and keep working.
</p>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Undo commits permanently
</dt>
<dd>
<div class="listingblock">
<div class="content">
<pre><code>$ git commit ...
$ git reset --hard HEAD~3   <b>&lt;1&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
The last three commits (HEAD, HEAD^, and HEAD~2) were bad
and you do not want to ever see them again.  Do <strong>not</strong> do this if
you have already given these commits to somebody else.  (See the
"RECOVERING FROM UPSTREAM REBASE" section in <a href="git-rebase.html">git-rebase(1)</a> for
the implications of doing so.)
</p>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Undo a merge or pull
</dt>
<dd>
<div class="listingblock">
<div class="content">
<pre><code>$ git pull                         <b>&lt;1&gt;</b>
Auto-merging nitfol
CONFLICT (content): Merge conflict in nitfol
Automatic merge failed; fix conflicts and then commit the result.
$ git reset --hard                 <b>&lt;2&gt;</b>
$ git pull . topic/branch          <b>&lt;3&gt;</b>
Updating from 41223... to 13134...
Fast-forward
$ git reset --hard ORIG_HEAD       <b>&lt;4&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
Try to update from the upstream resulted in a lot of
conflicts; you were not ready to spend a lot of time merging
right now, so you decide to do that later.
</p>
</li>
<li>
<p>
"pull" has not made merge commit, so "git reset --hard"
which is a synonym for "git reset --hard HEAD" clears the mess
from the index file and the working tree.
</p>
</li>
<li>
<p>
Merge a topic branch into the current branch, which resulted
in a fast-forward.
</p>
</li>
<li>
<p>
But you decided that the topic branch is not ready for public
consumption yet.  "pull" or "merge" always leaves the original
tip of the current branch in ORIG_HEAD, so resetting hard to it
brings your index file and the working tree back to that state,
and resets the tip of the branch to that commit.
</p>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Undo a merge or pull inside a dirty working tree
</dt>
<dd>
<div class="listingblock">
<div class="content">
<pre><code>$ git pull                         <b>&lt;1&gt;</b>
Auto-merging nitfol
Merge made by recursive.
 nitfol                |   20 +++++----
 ...
$ git reset --merge ORIG_HEAD      <b>&lt;2&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
Even if you may have local modifications in your
working tree, you can safely say "git pull" when you know
that the change in the other branch does not overlap with
them.
</p>
</li>
<li>
<p>
After inspecting the result of the merge, you may find
that the change in the other branch is unsatisfactory.  Running
"git reset --hard ORIG_HEAD" will let you go back to where you
were, but it will discard your local changes, which you do not
want.  "git reset --merge" keeps your local changes.
</p>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Interrupted workflow
</dt>
<dd>
<div class="paragraph"><p>Suppose you are interrupted by an urgent fix request while you
are in the middle of a large change.  The files in your
working tree are not in any shape to be committed yet, but you
need to get to the other branch for a quick bugfix.</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git checkout feature ;# you were working in "feature" branch and
$ work work work       ;# got interrupted
$ git commit -a -m "snapshot WIP"                 <b>&lt;1&gt;</b>
$ git checkout master
$ fix fix fix
$ git commit ;# commit with real log
$ git checkout feature
$ git reset --soft HEAD^ ;# go back to WIP state  <b>&lt;2&gt;</b>
$ git reset                                       <b>&lt;3&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
This commit will get blown away so a throw-away log message is OK.
</p>
</li>
<li>
<p>
This removes the <em>WIP</em> commit from the commit history, and sets
    your working tree to the state just before you made that snapshot.
</p>
</li>
<li>
<p>
At this point the index file still has all the WIP changes you
    committed as <em>snapshot WIP</em>.  This updates the index to show your
    WIP files as uncommitted.
</p>
<div class="paragraph"><p>See also <a href="git-stash.html">git-stash(1)</a>.</p></div>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Reset a single file in the index
</dt>
<dd>
<div class="paragraph"><p>Suppose you have added a file to your index, but later decide you do not
want to add it to your commit. You can remove the file from the index
while keeping your changes with git reset.</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git reset -- frotz.c                      <b>&lt;1&gt;</b>
$ git commit -m "Commit files in index"     <b>&lt;2&gt;</b>
$ git add frotz.c                           <b>&lt;3&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
This removes the file from the index while keeping it in the working
    directory.
</p>
</li>
<li>
<p>
This commits all other changes in the index.
</p>
</li>
<li>
<p>
Adds the file to the index again.
</p>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Keep changes in working tree while discarding some previous commits
</dt>
<dd>
<div class="paragraph"><p>Suppose you are working on something and you commit it, and then you
continue working a bit more, but now you think that what you have in
your working tree should be in another branch that has nothing to do
with what you committed previously. You can start a new branch and
reset it while keeping the changes in your working tree.</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git tag start
$ git checkout -b branch1
$ edit
$ git commit ...                            <b>&lt;1&gt;</b>
$ edit
$ git checkout -b branch2                   <b>&lt;2&gt;</b>
$ git reset --keep start                    <b>&lt;3&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
This commits your first edits in branch1.
</p>
</li>
<li>
<p>
In the ideal world, you could have realized that the earlier
    commit did not belong to the new topic when you created and switched
    to branch2 (i.e. "git checkout -b branch2 start"), but nobody is
    perfect.
</p>
</li>
<li>
<p>
But you can use "reset --keep" to remove the unwanted commit after
    you switched to "branch2".
</p>
</li>
</ol></div>
</dd>
<dt class="hdlist1">
Split a commit apart into a sequence of commits
</dt>
<dd>
<div class="paragraph"><p>Suppose that you have created lots of logically separate changes and commited
them together. Then, later you decide that it might be better to have each
logical chunk associated with its own commit. You can use git reset to rewind
history without changing the contents of your local files, and then successively
use <code>git add -p</code> to interactively select which hunks to include into each commit,
using <code>git commit -c</code> to pre-populate the commit message.</p></div>
<div class="listingblock">
<div class="content">
<pre><code>$ git reset -N HEAD^                        <b>&lt;1&gt;</b>
$ git add -p                                <b>&lt;2&gt;</b>
$ git diff --cached                         <b>&lt;3&gt;</b>
$ git commit -c HEAD@{1}                    <b>&lt;4&gt;</b>
...                                         <b>&lt;5&gt;</b>
$ git add ...                               <b>&lt;6&gt;</b>
$ git diff --cached                         <b>&lt;7&gt;</b>
$ git commit ...                            <b>&lt;8&gt;</b></code></pre>
</div></div>
<div class="colist arabic"><ol>
<li>
<p>
First, reset the history back one commit so that we remove the original
    commit, but leave the working tree with all the changes. The -N ensures
    that any new files added with HEAD are still marked so that git add -p
    will find them.
</p>
</li>
<li>
<p>
Next, we interactively select diff hunks to add using the git add -p
    facility. This will ask you about each diff hunk in sequence and you can
    use simple commands such as "yes, include this", "No don&#8217;t include this"
    or even the very powerful "edit" facility.
</p>
</li>
<li>
<p>
Once satisfied with the hunks you want to include, you should verify what
    has been prepared for the first commit by using git diff --cached. This
    shows all the changes that have been moved into the index and are about
    to be committed.
</p>
</li>
<li>
<p>
Next, commit the changes stored in the index. The -c option specifies to
    pre-populate the commit message from the original message that you started
    is a special notation for the commit that HEAD used to be at prior to the
    original reset commit (1 change ago). See <a href="git-reflog.html">git-reflog(1)</a> for more
    details. You may also use any other valid commit reference.
</p>
</li>
<li>
<p>
You can repeat steps 2-4 multiple times to break the original code into
    any number of commits.
</p>
</li>
<li>
<p>
Now you&#8217;ve split out many of the changes into their own commits, and might
    no longer use the patch mode of git add, in order to select all remaining
    uncommitted changes.
</p>
</li>
<li>
<p>
Once again, check to verify that you&#8217;ve included what you want to. You may
    also wish to verify that git diff doesn&#8217;t show any remaining changes to be
    committed later.
</p>
</li>
<li>
<p>
And finally create the final commit.
</p>
</li>
</ol></div>
</dd>
</dl></div>
</div>
</div>
<div class="sect1">
<h2 id="_discussion">DISCUSSION</h2>
<div class="sectionbody">
<div class="paragraph"><p>The tables below show what happens when running:</p></div>
<div class="listingblock">
<div class="content">
<pre><code>git reset --option target</code></pre>
</div></div>
<div class="paragraph"><p>to reset the HEAD to another commit (<code>target</code>) with the different
reset options depending on the state of the files.</p></div>
<div class="paragraph"><p>In these tables, A, B, C and D are some different states of a
file. For example, the first line of the first table means that if a
file is in state A in the working tree, in state B in the index, in
state C in HEAD and in state D in the target, then "git reset --soft
target" will leave the file in the working tree in state A and in the
index in state B.  It resets (i.e. moves) the HEAD (i.e. the tip of
the current branch, if you are on one) to "target" (which has the file
in state D).</p></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working index HEAD
----------------------------------------------------
 A       B     C    D     --soft   A       B     D
                          --mixed  A       D     D
                          --hard   D       D     D
                          --merge (disallowed)
                          --keep  (disallowed)</code></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working index HEAD
----------------------------------------------------
 A       B     C    C     --soft   A       B     C
                          --mixed  A       C     C
                          --hard   C       C     C
                          --merge (disallowed)
                          --keep   A       C     C</code></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working index HEAD
----------------------------------------------------
 B       B     C    D     --soft   B       B     D
                          --mixed  B       D     D
                          --hard   D       D     D
                          --merge  D       D     D
                          --keep  (disallowed)</code></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working 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</code></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working index HEAD
----------------------------------------------------
 B       C     C    D     --soft   B       C     D
                          --mixed  B       D     D
                          --hard   D       D     D
                          --merge (disallowed)
                          --keep  (disallowed)</code></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working 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</code></pre>
</div></div>
<div class="paragraph"><p>"reset --merge" is meant to be used when resetting out of a conflicted
merge. Any mergy operation guarantees that the working tree file that is
involved in the merge does not have local change wrt the index before
it starts, and that it writes the result out to the working tree. So if
we see some difference between the index and the target and also
between the index and the working tree, then it means that we are not
resetting out from a state that a mergy operation left after failing
with a conflict. That is why we disallow --merge option in this case.</p></div>
<div class="paragraph"><p>"reset --keep" is meant to be used when removing some of the last
commits in the current branch while keeping changes in the working
tree. If there could be conflicts between the changes in the commit we
want to remove and the changes in the working tree we want to keep,
the reset is disallowed. That&#8217;s why it is disallowed if there are both
changes between the working tree and HEAD, and between HEAD and the
target. To be safe, it is also disallowed when there are unmerged
entries.</p></div>
<div class="paragraph"><p>The following tables show what happens when there are unmerged
entries:</p></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working index HEAD
----------------------------------------------------
 X       U     A    B     --soft  (disallowed)
                          --mixed  X       B     B
                          --hard   B       B     B
                          --merge  B       B     B
                          --keep  (disallowed)</code></pre>
</div></div>
<div class="literalblock">
<div class="content">
<pre><code>working index HEAD target         working index HEAD
----------------------------------------------------
 X       U     A    A     --soft  (disallowed)
                          --mixed  X       A     A
                          --hard   A       A     A
                          --merge  A       A     A
                          --keep  (disallowed)</code></pre>
</div></div>
<div class="paragraph"><p>X means any state and U means an unmerged index.</p></div>
</div>
</div>
<div class="sect1">
<h2 id="_git">GIT</h2>
<div class="sectionbody">
<div class="paragraph"><p>Part of the <a href="git.html">git(1)</a> suite</p></div>
</div>
</div>
</div>
<div id="footnotes"><hr /></div>
<div id="footer">
<div id="footer-text">
Last updated 2017-02-16 14:58:56 PST
</div>
</div>
</body>
</html>
