Autogenerated HTML docs for v1.2.2-g73be
[git.git] / git-reset.html
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
4 <head>\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
8 /* Debug borders */\r
9 p, li, dt, dd, div, pre, h1, h2, h3, h4, h5, h6 {\r
10 /*\r
11   border: 1px solid red;\r
12 */\r
13 }\r
14 \r
15 body {\r
16   margin: 1em 5% 1em 5%;\r
17 }\r
18 \r
19 a { color: blue; }\r
20 a:visited { color: fuchsia; }\r
21 \r
22 em {\r
23   font-style: italic;\r
24 }\r
25 \r
26 strong {\r
27   font-weight: bold;\r
28 }\r
29 \r
30 tt {\r
31   color: navy;\r
32 }\r
33 \r
34 h1, h2, h3, h4, h5, h6 {\r
35   color: #527bbd;\r
36   font-family: sans-serif;\r
37   margin-top: 1.2em;\r
38   margin-bottom: 0.5em;\r
39   line-height: 1.3;\r
40 }\r
41 \r
42 h1 {\r
43   border-bottom: 2px solid silver;\r
44 }\r
45 h2 {\r
46   border-bottom: 2px solid silver;\r
47   padding-top: 0.5em;\r
48 }\r
49 \r
50 div.sectionbody {\r
51   font-family: serif;\r
52   margin-left: 0;\r
53 }\r
54 \r
55 hr {\r
56   border: 1px solid silver;\r
57 }\r
58 \r
59 p {\r
60   margin-top: 0.5em;\r
61   margin-bottom: 0.5em;\r
62 }\r
63 \r
64 pre {\r
65   padding: 0;\r
66   margin: 0;\r
67 }\r
68 \r
69 span#author {\r
70   color: #527bbd;\r
71   font-family: sans-serif;\r
72   font-weight: bold;\r
73   font-size: 1.2em;\r
74 }\r
75 span#email {\r
76 }\r
77 span#revision {\r
78   font-family: sans-serif;\r
79 }\r
80 \r
81 div#footer {\r
82   font-family: sans-serif;\r
83   font-size: small;\r
84   border-top: 2px solid silver;\r
85   padding-top: 0.5em;\r
86   margin-top: 4.0em;\r
87 }\r
88 div#footer-text {\r
89   float: left;\r
90   padding-bottom: 0.5em;\r
91 }\r
92 div#footer-badges {\r
93   float: right;\r
94   padding-bottom: 0.5em;\r
95 }\r
96 \r
97 div#preamble,\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
101   margin-right: 10%;\r
102   margin-top: 1.5em;\r
103   margin-bottom: 1.5em;\r
104 }\r
105 div.admonitionblock {\r
106   margin-top: 2.5em;\r
107   margin-bottom: 2.5em;\r
108 }\r
109 \r
110 div.content { /* Block element content. */\r
111   padding: 0;\r
112 }\r
113 \r
114 /* Block element titles. */\r
115 div.title, caption.title {\r
116   font-family: sans-serif;\r
117   font-weight: bold;\r
118   text-align: left;\r
119   margin-top: 1.0em;\r
120   margin-bottom: 0.5em;\r
121 }\r
122 div.title + * {\r
123   margin-top: 0;\r
124 }\r
125 \r
126 td div.title:first-child {\r
127   margin-top: 0.0em;\r
128 }\r
129 div.content div.title:first-child {\r
130   margin-top: 0.0em;\r
131 }\r
132 div.content + div.title {\r
133   margin-top: 0.0em;\r
134 }\r
135 \r
136 div.sidebarblock > div.content {\r
137   background: #ffffee;\r
138   border: 1px solid silver;\r
139   padding: 0.5em;\r
140 }\r
141 \r
142 div.listingblock > div.content {\r
143   border: 1px solid silver;\r
144   background: #f4f4f4;\r
145   padding: 0.5em;\r
146 }\r
147 \r
148 div.quoteblock > div.content {\r
149   padding-left: 2.0em;\r
150 }\r
151 div.quoteblock .attribution {\r
152   text-align: right;\r
153 }\r
154 \r
155 div.admonitionblock .icon {\r
156   vertical-align: top;\r
157   font-size: 1.1em;\r
158   font-weight: bold;\r
159   text-decoration: underline;\r
160   color: #527bbd;\r
161   padding-right: 0.5em;\r
162 }\r
163 div.admonitionblock td.content {\r
164   padding-left: 0.5em;\r
165   border-left: 2px solid silver;\r
166 }\r
167 \r
168 div.exampleblock > div.content {\r
169   border-left: 2px solid silver;\r
170   padding: 0.5em;\r
171 }\r
172 \r
173 div.verseblock div.content {\r
174   white-space: pre;\r
175 }\r
176 \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
180 \r
181 dl {\r
182   margin-top: 0.8em;\r
183   margin-bottom: 0.8em;\r
184 }\r
185 dt {\r
186   margin-top: 0.5em;\r
187   margin-bottom: 0;\r
188   font-style: italic;\r
189 }\r
190 dd > *:first-child {\r
191   margin-top: 0;\r
192 }\r
193 \r
194 ul, ol {\r
195     list-style-position: outside;\r
196 }\r
197 ol.olist2 {\r
198   list-style-type: lower-alpha;\r
199 }\r
200 \r
201 div.tableblock > table {\r
202   border-color: #527bbd;\r
203   border-width: 3px;\r
204 }\r
205 thead {\r
206   font-family: sans-serif;\r
207   font-weight: bold;\r
208 }\r
209 tfoot {\r
210   font-weight: bold;\r
211 }\r
212 \r
213 div.hlist {\r
214   margin-top: 0.8em;\r
215   margin-bottom: 0.8em;\r
216 }\r
217 td.hlist1 {\r
218   vertical-align: top;\r
219   font-style: italic;\r
220   padding-right: 0.8em;\r
221 }\r
222 td.hlist2 {\r
223   vertical-align: top;\r
224 }\r
225 \r
226 @media print {\r
227   div#footer-badges { display: none; }\r
228 }\r
229 include::./stylesheets/xhtml11-manpage.css[]\r
230 /* Workarounds for IE6's broken and incomplete CSS2. */\r
231 \r
232 div.sidebar-content {\r
233   background: #ffffee;\r
234   border: 1px solid silver;\r
235   padding: 0.5em;\r
236 }\r
237 div.sidebar-title, div.image-title {\r
238   font-family: sans-serif;\r
239   font-weight: bold;\r
240   margin-top: 0.0em;\r
241   margin-bottom: 0.5em;\r
242 }\r
243 \r
244 div.listingblock div.content {\r
245   border: 1px solid silver;\r
246   background: #f4f4f4;\r
247   padding: 0.5em;\r
248 }\r
249 \r
250 div.quoteblock-content {\r
251   padding-left: 2.0em;\r
252 }\r
253 \r
254 div.exampleblock-content {\r
255   border-left: 2px solid silver;\r
256   padding-left: 0.5em;\r
257 }\r
258 </style>\r
259 <title>git-reset(1)</title>\r
260 </head>\r
261 <body>\r
262 <div id="header">\r
263 <h1>\r
264 git-reset(1) Manual Page\r
265 </h1>\r
266 <h2>NAME</h2>\r
267 <div class="sectionbody">\r
268 <p>git-reset -\r
269    Reset current HEAD to the specified state.\r
270 </p>\r
271 </div>\r
272 </div>\r
273 <h2>SYNOPSIS</h2>\r
274 <div class="sectionbody">\r
275 <p><em>git-reset</em> [--mixed | --soft | --hard] [&lt;commit-ish&gt;]</p>\r
276 </div>\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
286 </div>\r
287 <h2>OPTIONS</h2>\r
288 <div class="sectionbody">\r
289 <dl>\r
290 <dt>\r
291 --mixed\r
292 </dt>\r
293 <dd>\r
294 <p>\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
298 </p>\r
299 </dd>\r
300 <dt>\r
301 --soft\r
302 </dt>\r
303 <dd>\r
304 <p>\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
308         put it.\r
309 </p>\r
310 </dd>\r
311 <dt>\r
312 --hard\r
313 </dt>\r
314 <dd>\r
315 <p>\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 &lt;commit-ish&gt; are lost.\r
319 </p>\r
320 </dd>\r
321 <dt>\r
322 &lt;commit-ish&gt;\r
323 </dt>\r
324 <dd>\r
325 <p>\r
326         Commit to make the current HEAD.\r
327 </p>\r
328 </dd>\r
329 </dl>\r
330 <h3>Examples</h3>\r
331 <dl>\r
332 <dt>\r
333 Undo a commit and redo\r
334 </dt>\r
335 <dd>\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
340 $ edit <b>(2)</b>\r
341 $ git commit -a -c ORIG_HEAD <b>(3)</b>\r
342 \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
350 </div></div>\r
351 </dd>\r
352 <dt>\r
353 Undo commits permanently\r
354 </dt>\r
355 <dd>\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
360 \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
364 </div></div>\r
365 </dd>\r
366 <dt>\r
367 Undo a commit, making it a topic branch\r
368 </dt>\r
369 <dd>\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
375 \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
379 current HEAD.\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
382 </div></div>\r
383 </dd>\r
384 <dt>\r
385 Undo update-index\r
386 </dt>\r
387 <dd>\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
392 $ mailx <b>(2)</b>\r
393 $ git reset <b>(3)</b>\r
394 $ git pull git://info.example.com/ nitfol <b>(4)</b>\r
395 \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
405 remain there.\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
408 </div></div>\r
409 </dd>\r
410 <dt>\r
411 Undo a merge or pull\r
412 </dt>\r
413 <dd>\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
419 Nope.\r
420 ...\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
425 \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
432 \r
433 $ git pull . topic/branch <b>(3)</b>\r
434 Updating from 41223... to 13134...\r
435 Fast forward\r
436 $ git reset --hard ORIG_HEAD <b>(4)</b>\r
437 \r
438 <b>(3)</b> merge a topic branch into the current branch, which resulted\r
439 in a fast forward.\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
445 </div></div>\r
446 </dd>\r
447 <dt>\r
448 Interrupted workflow\r
449 </dt>\r
450 <dd>\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
461 $ fix fix fix\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
466 \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
473 </div></div>\r
474 </dd>\r
475 </dl>\r
476 </div>\r
477 <h2>Author</h2>\r
478 <div class="sectionbody">\r
479 <p>Written by Junio C Hamano &lt;junkio@cox.net&gt; and Linus Torvalds &lt;torvalds@osdl.org&gt;</p>\r
480 </div>\r
481 <h2>Documentation</h2>\r
482 <div class="sectionbody">\r
483 <p>Documentation by Junio C Hamano and the git-list &lt;git@vger.kernel.org&gt;.</p>\r
484 </div>\r
485 <h2>GIT</h2>\r
486 <div class="sectionbody">\r
487 <p>Part of the <a href="git.html">git(7)</a> suite</p>\r
488 </div>\r
489 <div id="footer">\r
490 <div id="footer-text">\r
491 Last updated 21-Jan-2006 23:50:19 PDT\r
492 </div>\r
493 </div>\r
494 </body>\r
495 </html>\r