Merge branch 'lt/reset-merge'
authorJunio C Hamano <gitster@pobox.com>
Mon, 29 Dec 2008 09:21:45 +0000 (01:21 -0800)
committerJunio C Hamano <gitster@pobox.com>
Mon, 29 Dec 2008 09:21:45 +0000 (01:21 -0800)
* lt/reset-merge:
Document "git-reset --merge"
Add 'merge' mode to 'git reset'

1  2 
Documentation/git-reset.txt
index 2049f3d97b67adc8fa93ca462875db6e522e1923,c542b0caf7e491d1ebcdbf7c037f129e052d8a1d..abb25d1c00c97144b1f3709e408fe9cad613e623
@@@ -8,7 -8,7 +8,7 @@@ git-reset - Reset current HEAD to the s
  SYNOPSIS
  --------
  [verse]
- 'git reset' [--mixed | --soft | --hard] [-q] [<commit>]
+ 'git reset' [--mixed | --soft | --hard | --merge] [-q] [<commit>]
  'git reset' [-q] [<commit>] [--] <paths>...
  
  DESCRIPTION
@@@ -45,6 -45,11 +45,11 @@@ OPTION
        switched to. Any changes to tracked files in the working tree
        since <commit> 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::
  +