1 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
\r
2 "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
\r
3 <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en">
\r
5 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
\r
6 <meta name="generator" content="AsciiDoc 7.0.1" />
\r
7 <style type="text/css">
\r
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {
\r
11 border: 1px solid red;
\r
16 margin: 1em 5% 1em 5%;
\r
20 a:visited { color: fuchsia; }
\r
34 h1, h2, h3, h4, h5, h6 {
\r
36 font-family: sans-serif;
\r
38 margin-bottom: 0.5em;
\r
43 border-bottom: 2px solid silver;
\r
46 border-bottom: 2px solid silver;
\r
56 border: 1px solid silver;
\r
61 margin-bottom: 0.5em;
\r
71 font-family: sans-serif;
\r
78 font-family: sans-serif;
\r
82 font-family: sans-serif;
\r
84 border-top: 2px solid silver;
\r
90 padding-bottom: 0.5em;
\r
94 padding-bottom: 0.5em;
\r
98 div.tableblock, div.imageblock, div.exampleblock, div.verseblock,
\r
99 div.quoteblock, div.literalblock, div.listingblock, div.sidebarblock,
\r
100 div.admonitionblock {
\r
103 margin-bottom: 1.5em;
\r
105 div.admonitionblock {
\r
107 margin-bottom: 2.5em;
\r
110 div.content { /* Block element content. */
\r
114 /* Block element titles. */
\r
115 div.title, caption.title {
\r
116 font-family: sans-serif;
\r
120 margin-bottom: 0.5em;
\r
126 td div.title:first-child {
\r
129 div.content div.title:first-child {
\r
132 div.content + div.title {
\r
136 div.sidebarblock > div.content {
\r
137 background: #ffffee;
\r
138 border: 1px solid silver;
\r
142 div.listingblock > div.content {
\r
143 border: 1px solid silver;
\r
144 background: #f4f4f4;
\r
148 div.quoteblock > div.content {
\r
149 padding-left: 2.0em;
\r
151 div.quoteblock .attribution {
\r
155 div.admonitionblock .icon {
\r
156 vertical-align: top;
\r
159 text-decoration: underline;
\r
161 padding-right: 0.5em;
\r
163 div.admonitionblock td.content {
\r
164 padding-left: 0.5em;
\r
165 border-left: 2px solid silver;
\r
168 div.exampleblock > div.content {
\r
169 border-left: 2px solid silver;
\r
173 div.verseblock div.content {
\r
177 div.imageblock div.content { padding-left: 0; }
\r
178 div.imageblock img { border: 1px solid silver; }
\r
179 span.image img { border-style: none; }
\r
183 margin-bottom: 0.8em;
\r
188 font-style: italic;
\r
190 dd > *:first-child {
\r
195 list-style-position: outside;
\r
198 list-style-type: lower-alpha;
\r
201 div.tableblock > table {
\r
202 border-color: #527bbd;
\r
206 font-family: sans-serif;
\r
215 margin-bottom: 0.8em;
\r
218 vertical-align: top;
\r
219 font-style: italic;
\r
220 padding-right: 0.8em;
\r
223 vertical-align: top;
\r
227 div#footer-badges { display: none; }
\r
229 include::./stylesheets/xhtml11-manpage.css[]
\r
230 /* Workarounds for IE6's broken and incomplete CSS2. */
\r
232 div.sidebar-content {
\r
233 background: #ffffee;
\r
234 border: 1px solid silver;
\r
237 div.sidebar-title, div.image-title {
\r
238 font-family: sans-serif;
\r
241 margin-bottom: 0.5em;
\r
244 div.listingblock div.content {
\r
245 border: 1px solid silver;
\r
246 background: #f4f4f4;
\r
250 div.quoteblock-content {
\r
251 padding-left: 2.0em;
\r
254 div.exampleblock-content {
\r
255 border-left: 2px solid silver;
\r
256 padding-left: 0.5em;
\r
259 <title>git-reset(1)</title>
\r
264 git-reset(1) Manual Page
\r
267 <div class="sectionbody">
\r
269 Reset current HEAD to the specified state.
\r
274 <div class="sectionbody">
\r
275 <p><em>git-reset</em> [--mixed | --soft | --hard] [<commit-ish>]</p>
\r
277 <h2>DESCRIPTION</h2>
\r
278 <div class="sectionbody">
\r
279 <p>Sets the current head to the specified commit and optionally resets the
\r
280 index and working tree to match.</p>
\r
281 <p>This command is useful if you notice some small error in a recent
\r
282 commit (or set of commits) and want to redo that part without showing
\r
283 the undo in the history.</p>
\r
284 <p>If you want to undo a commit other than the latest on a branch,
\r
285 <a href="git-revert.html">git-revert(1)</a> is your friend.</p>
\r
288 <div class="sectionbody">
\r
295 Resets the index but not the working tree (ie, the changed files
\r
296 are preserved but not marked for commit) and reports what has not
\r
297 been updated. This is the default action.
\r
305 Does not touch the index file nor the working tree at all, but
\r
306 requires them to be in a good order. This leaves all your changed
\r
307 files "Updated but not checked in", as <a href="git-status.html">git-status(1)</a> would
\r
316 Matches the working tree and index to that of the tree being
\r
317 switched to. Any changes to tracked files in the working tree
\r
318 since <commit-ish> are lost.
\r
326 Commit to make the current HEAD.
\r
333 Undo a commit and redo
\r
336 <div class="listingblock">
\r
337 <div class="content">
\r
338 <pre><tt>$ git commit ...
\r
339 $ git reset --soft HEAD^ <b>(1)</b>
\r
341 $ git commit -a -c ORIG_HEAD <b>(3)</b>
\r
343 <b>(1)</b> This is most often done when you remembered what you
\r
344 just committed is incomplete, or you misspelled your commit
\r
345 message, or both. Leaves working tree as it was before "reset".
\r
346 <b>(2)</b> make corrections to working tree files.
\r
347 <b>(3)</b> "reset" copies the old head to .git/ORIG_HEAD; redo the
\r
348 commit by starting with its log message. If you do not need to
\r
349 edit the message further, you can give -C option instead.</tt></pre>
\r
353 Undo commits permanently
\r
356 <div class="listingblock">
\r
357 <div class="content">
\r
358 <pre><tt>$ git commit ...
\r
359 $ git reset --hard HEAD~3 <b>(1)</b>
\r
361 <b>(1)</b> The last three commits (HEAD, HEAD^, and HEAD~2) were bad
\r
362 and you do not want to ever see them again. Do *not* do this if
\r
363 you have already given these commits to somebody else.</tt></pre>
\r
367 Undo a commit, making it a topic branch
\r
370 <div class="listingblock">
\r
371 <div class="content">
\r
372 <pre><tt>$ git branch topic/wip <b>(1)</b>
\r
373 $ git reset --hard HEAD~3 <b>(2)</b>
\r
374 $ git checkout topic/wip <b>(3)</b>
\r
376 <b>(1)</b> You have made some commits, but realize they were premature
\r
377 to be in the "master" branch. You want to continue polishing
\r
378 them in a topic branch, so create "topic/wip" branch off of the
\r
380 <b>(2)</b> Rewind the master branch to get rid of those three commits.
\r
381 <b>(3)</b> Switch to "topic/wip" branch and keep working.</tt></pre>
\r
388 <div class="listingblock">
\r
389 <div class="content">
\r
390 <pre><tt>$ edit <b>(1)</b>
\r
391 $ git-update-index frotz.c filfre.c
\r
393 $ git reset <b>(3)</b>
\r
394 $ git pull git://info.example.com/ nitfol <b>(4)</b>
\r
396 <b>(1)</b> you are happily working on something, and find the changes
\r
397 in these files are in good order. You do not want to see them
\r
398 when you run "git diff", because you plan to work on other files
\r
399 and changes with these files are distracting.
\r
400 <b>(2)</b> somebody asks you to pull, and the changes sounds worthy of merging.
\r
401 <b>(3)</b> however, you already dirtied the index (i.e. your index does
\r
402 not match the HEAD commit). But you know the pull you are going
\r
403 to make does not affect frotz.c nor filfre.c, so you revert the
\r
404 index changes for these two files. Your changes in working tree
\r
406 <b>(4)</b> then you can pull and merge, leaving frotz.c and filfre.c
\r
407 changes still in the working tree.</tt></pre>
\r
411 Undo a merge or pull
\r
414 <div class="listingblock">
\r
415 <div class="content">
\r
416 <pre><tt>$ git pull <b>(1)</b>
\r
417 Trying really trivial in-index merge...
\r
418 fatal: Merge requires file-level merging
\r
421 Auto-merging nitfol
\r
422 CONFLICT (content): Merge conflict in nitfol
\r
423 Automatic merge failed/prevented; fix up by hand
\r
424 $ git reset --hard <b>(2)</b>
\r
426 <b>(1)</b> try to update from the upstream resulted in a lot of
\r
427 conflicts; you were not ready to spend a lot of time merging
\r
428 right now, so you decide to do that later.
\r
429 <b>(2)</b> "pull" has not made merge commit, so "git reset --hard"
\r
430 which is a synonym for "git reset --hard HEAD" clears the mess
\r
431 from the index file and the working tree.
\r
433 $ git pull . topic/branch <b>(3)</b>
\r
434 Updating from 41223... to 13134...
\r
436 $ git reset --hard ORIG_HEAD <b>(4)</b>
\r
438 <b>(3)</b> merge a topic branch into the current branch, which resulted
\r
440 <b>(4)</b> but you decided that the topic branch is not ready for public
\r
441 consumption yet. "pull" or "merge" always leaves the original
\r
442 tip of the current branch in ORIG_HEAD, so resetting hard to it
\r
443 brings your index file and the working tree back to that state,
\r
444 and resets the tip of the branch to that commit.</tt></pre>
\r
448 Interrupted workflow
\r
451 <p>Suppose you are interrupted by an urgent fix request while you
\r
452 are in the middle of a large change. The files in your
\r
453 working tree are not in any shape to be committed yet, but you
\r
454 need to get to the other branch for a quick bugfix.</p>
\r
455 <div class="listingblock">
\r
456 <div class="content">
\r
457 <pre><tt>$ git checkout feature ;# you were working in "feature" branch and
\r
458 $ work work work ;# got interrupted
\r
459 $ git commit -a -m 'snapshot WIP' <b>(1)</b>
\r
460 $ git checkout master
\r
462 $ git commit ;# commit with real log
\r
463 $ git checkout feature
\r
464 $ git reset --soft HEAD^ ;# go back to WIP state <b>(2)</b>
\r
465 $ git reset <b>(3)</b>
\r
467 <b>(1)</b> This commit will get blown away so a throw-away log message is OK.
\r
468 <b>(2)</b> This removes the 'WIP' commit from the commit history, and sets
\r
469 your working tree to the state just before you made that snapshot.
\r
470 <b>(3)</b> After <b>(2)</b>, the index file still has all the WIP changes you
\r
471 committed in <b>(1)</b>. This sets it to the last commit you were
\r
472 basing the WIP changes on.</tt></pre>
\r
478 <div class="sectionbody">
\r
479 <p>Written by Junio C Hamano <junkio@cox.net> and Linus Torvalds <torvalds@osdl.org></p>
\r
481 <h2>Documentation</h2>
\r
482 <div class="sectionbody">
\r
483 <p>Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.</p>
\r
486 <div class="sectionbody">
\r
487 <p>Part of the <a href="git.html">git(7)</a> suite</p>
\r
490 <div id="footer-text">
\r
491 Last updated 21-Jan-2006 23:50:19 PDT
\r