From: Junio C Hamano Date: Mon, 29 Dec 2008 09:21:45 +0000 (-0800) Subject: Merge branch 'lt/reset-merge' X-Git-Tag: v1.6.2-rc0~203 X-Git-Url: https://git.lorimer.id.au/gitweb.git/diff_plain/c32f76f4d220e5d4d6a599d7a12a50b1e3ceceaf?hp=-c Merge branch 'lt/reset-merge' * lt/reset-merge: Document "git-reset --merge" Add 'merge' mode to 'git reset' --- c32f76f4d220e5d4d6a599d7a12a50b1e3ceceaf diff --combined Documentation/git-reset.txt index 2049f3d97b,c542b0caf7..abb25d1c00 --- a/Documentation/git-reset.txt +++ b/Documentation/git-reset.txt @@@ -8,7 -8,7 +8,7 @@@ git-reset - Reset current HEAD to the s SYNOPSIS -------- [verse] - 'git reset' [--mixed | --soft | --hard] [-q] [] + 'git reset' [--mixed | --soft | --hard | --merge] [-q] [] 'git reset' [-q] [] [--] ... DESCRIPTION @@@ -45,6 -45,11 +45,11 @@@ OPTION switched to. Any changes to tracked files in the working tree since are lost. + --merge:: + Resets the index to match the tree recorded by the named commit, + and updates the files that are different between the named commit + and the current commit in the working tree. + -q:: Be quiet, only report errors. @@@ -130,7 -135,7 +135,7 @@@ Undo a merge or pull: $ git pull <1> Auto-merging nitfol CONFLICT (content): Merge conflict in nitfol -Automatic merge failed/prevented; fix up by hand +Automatic merge failed; fix conflicts and then commit the result. $ git reset --hard <2> $ git pull . topic/branch <3> Updating from 41223... to 13134... @@@ -152,6 -157,28 +157,28 @@@ tip of the current branch in ORIG_HEAD brings your index file and the working tree back to that state, and resets the tip of the branch to that commit. + Undo a merge or pull inside a dirty work tree:: + + + ------------ + $ git pull <1> + Auto-merging nitfol + Merge made by recursive. + nitfol | 20 +++++---- + ... + $ git reset --merge ORIG_HEAD <2> + ------------ + + + <1> 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. + <2> 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. + + Interrupted workflow:: + Suppose you are interrupted by an urgent fix request while you @@@ -177,8 -204,6 +204,8 @@@ $ git rese <3> At this point the index file still has all the WIP changes you committed as 'snapshot WIP'. This updates the index to show your WIP files as uncommitted. ++ +See also linkgit:git-stash[1]. Reset a single file in the index:: +