X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=man1%2Fgit-reset.1;h=bfa0082fd8817726a22f7cfffdd61cd70ed80797;hb=ff65000a1149a1bad6d7d9f6bf6ec5194f5c850d;hp=d6860d43da2b3c778f0c43125fff698d0ae9f542;hpb=539910c8b8c67af123f812c42bec2dfb7077cfd4;p=git.git diff --git a/man1/git-reset.1 b/man1/git-reset.1 index d6860d43..bfa0082f 100755 --- a/man1/git-reset.1 +++ b/man1/git-reset.1 @@ -61,76 +61,74 @@ Undo a commit and redo .nf $ git commit \&.\&.\&. -$ git reset \-\-soft HEAD^ -$ edit -$ git commit \-a \-c ORIG_HEAD - - 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"\&. - make corrections to working tree files\&. - "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\&. +$ git reset \-\-soft HEAD^ \fB(1)\fR +$ edit \fB(2)\fR +$ git commit \-a \-c ORIG_HEAD \fB(3)\fR .fi +.sp +\fB1. \fRThis 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"\&. +.br +\fB2. \fRmake corrections to working tree files\&. +.br +\fB3. \fR"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\&. +.br + .TP Undo commits permanently .nf $ git commit \&.\&.\&. -$ git reset \-\-hard HEAD~3 - - The last three commits (HEAD, HEAD^, and HEAD~2) were bad -and you do not want to ever see them again\&. Do *not* do this if -you have already given these commits to somebody else\&. +$ git reset \-\-hard HEAD~3 \fB(1)\fR .fi +.sp +\fB1. \fRThe last three commits (HEAD, HEAD^, and HEAD~2) were bad and you do not want to ever see them again\&. Do \fInot\fR do this if you have already given these commits to somebody else\&. +.br + .TP Undo a commit, making it a topic branch .nf -$ git branch topic/wip -$ git reset \-\-hard HEAD~3 -$ git checkout topic/wip - - 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\&. - Rewind the master branch to get rid of those three commits\&. - Switch to "topic/wip" branch and keep working\&. +$ git branch topic/wip \fB(1)\fR +$ git reset \-\-hard HEAD~3 \fB(2)\fR +$ git checkout topic/wip \fB(3)\fR .fi +.sp +\fB1. \fRYou 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\&. +.br +\fB2. \fRRewind the master branch to get rid of those three commits\&. +.br +\fB3. \fRSwitch to "topic/wip" branch and keep working\&. +.br + .TP Undo update\-index .nf -$ edit +$ edit \fB(1)\fR $ git\-update\-index frotz\&.c filfre\&.c -$ mailx -$ git reset -$ git pull git://info\&.example\&.com/ nitfol - - 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\&. - somebody asks you to pull, and the changes sounds worthy of merging\&. - 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 nor filfre\&.c, so you revert the -index changes for these two files\&. Your changes in working tree -remain there\&. - then you can pull and merge, leaving frotz\&.c and filfre\&.c -changes still in the working tree\&. +$ mailx \fB(2)\fR +$ git reset \fB(3)\fR +$ git pull git://info\&.example\&.com/ nitfol \fB(4)\fR .fi +.sp +\fB1. \fRyou 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\&. +.br +\fB2. \fRsomebody asks you to pull, and the changes sounds worthy of merging\&. +.br +\fB3. \fRhowever, 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 nor filfre\&.c, so you revert the index changes for these two files\&. Your changes in working tree remain there\&. +.br +\fB4. \fRthen you can pull and merge, leaving frotz\&.c and filfre\&.c changes still in the working tree\&. +.br + .TP Undo a merge or pull .nf -$ git pull +$ git pull \fB(1)\fR Trying really trivial in\-index merge\&.\&.\&. fatal: Merge requires file\-level merging Nope\&. @@ -138,28 +136,22 @@ Nope\&. Auto\-merging nitfol CONFLICT (content): Merge conflict in nitfol Automatic merge failed/prevented; fix up by hand -$ git reset \-\-hard - - 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\&. - "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\&. - -$ git pull \&. topic/branch +$ git reset \-\-hard \fB(2)\fR +$ git pull \&. topic/branch \fB(3)\fR Updating from 41223\&.\&.\&. to 13134\&.\&.\&. Fast forward -$ git reset \-\-hard ORIG_HEAD - - merge a topic branch into the current branch, which resulted -in a fast forward\&. - 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\&. +$ git reset \-\-hard ORIG_HEAD \fB(4)\fR .fi +.sp +\fB1. \fRtry 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\&. +.br +\fB2. \fR"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\&. +.br +\fB3. \fRmerge a topic branch into the current branch, which resulted in a fast forward\&. +.br +\fB4. \fRbut 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\&. +.br + .TP Interrupted workflow @@ -168,21 +160,22 @@ Suppose you are interrupted by an urgent fix request while you are in the middle .nf $ git checkout feature ;# you were working in "feature" branch and $ work work work ;# got interrupted -$ git commit \-a \-m 'snapshot WIP' +$ git commit \-a \-m 'snapshot WIP' \fB(1)\fR $ git checkout master $ fix fix fix $ git commit ;# commit with real log $ git checkout feature -$ git reset \-\-soft HEAD^ ;# go back to WIP state -$ git reset - - This commit will get blown away so a throw\-away log message is OK\&. - This removes the 'WIP' commit from the commit history, and sets - your working tree to the state just before you made that snapshot\&. - After , the index file still has all the WIP changes you - committed in \&. This sets it to the last commit you were - basing the WIP changes on\&. +$ git reset \-\-soft HEAD^ ;# go back to WIP state \fB(2)\fR +$ git reset \fB(3)\fR .fi +.sp +\fB1. \fRThis commit will get blown away so a throw\-away log message is OK\&. +.br +\fB2. \fRThis removes the \fIWIP\fR commit from the commit history, and sets your working tree to the state just before you made that snapshot\&. +.br +\fB3. \fRAt this point the index file still has all the WIP changes you committed as \fIsnapshot WIP\fR\&. This updates the index to show your WIP files as uncommitted\&. +.br + .SH "AUTHOR"