aboutsummaryrefslogtreecommitdiffstats
path: root/Documentation/git-reset.txt
diff options
context:
space:
mode:
authorChristian Couder <chriscool@tuxfamily.org>2009-12-30 06:54:45 +0100
committerJunio C Hamano <gitster@pobox.com>2009-12-30 01:09:45 -0800
commit4086010c7c83d907321ae1357569dfcc01710cb6 (patch)
treee4c9b5e091b162a592eba97ce5e66a89096b1fc5 /Documentation/git-reset.txt
parent2b06b0a02f8d0aa01c8ff19b72c9292afd7a84fe (diff)
downloadgit-4086010c7c83d907321ae1357569dfcc01710cb6.tar.gz
Documentation: reset: add some tables to describe the different options
This patch adds a DISCUSSION section that contains some tables to show how the different "git reset" options work depending on the states of the files in the working tree, the index, HEAD and the target commit. Signed-off-by: Christian Couder <chriscool@tuxfamily.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'Documentation/git-reset.txt')
-rw-r--r--Documentation/git-reset.txt66
1 files changed, 66 insertions, 0 deletions
diff --git a/Documentation/git-reset.txt b/Documentation/git-reset.txt
index 2d27e405a3..2198c8ebd6 100644
--- a/Documentation/git-reset.txt
+++ b/Documentation/git-reset.txt
@@ -67,6 +67,72 @@ linkgit:git-add[1]).
<commit>::
Commit to make the current HEAD. If not given defaults to HEAD.
+DISCUSSION
+----------
+
+The tables below show what happens when running:
+
+----------
+git reset --option target
+----------
+
+to reset the HEAD to another commit (`target`) with the different
+reset options depending on the state of the files.
+
+ working index HEAD target working index HEAD
+ ----------------------------------------------------
+ A B C D --soft A B D
+ --mixed A D D
+ --hard D D D
+ --merge (disallowed)
+
+ working index HEAD target working index HEAD
+ ----------------------------------------------------
+ A B C C --soft A B C
+ --mixed A C C
+ --hard C C C
+ --merge (disallowed)
+
+ working index HEAD target working index HEAD
+ ----------------------------------------------------
+ B B C D --soft B B D
+ --mixed B D D
+ --hard D D D
+ --merge D D D
+
+ working index HEAD target working index HEAD
+ ----------------------------------------------------
+ B B C C --soft B B C
+ --mixed B C C
+ --hard C C C
+ --merge C C C
+
+In these tables, A, B, C and D are some different states of a
+file. For example, the last line of the last table means that if a
+file is in state B in the working tree and the index, and in a
+different state C in HEAD and in the target, then "git reset
+--merge target" will put the file in state C in the working tree,
+in the index and in HEAD.
+
+The following tables show what happens when there are unmerged
+entries:
+
+ working index HEAD target working index HEAD
+ ----------------------------------------------------
+ X U A B --soft (disallowed)
+ --mixed X B B
+ --hard B B B
+ --merge (disallowed)
+
+ working index HEAD target working index HEAD
+ ----------------------------------------------------
+ X U A A --soft (disallowed)
+ --mixed X A A
+ --hard A A A
+ --merge (disallowed)
+
+X means any state and U means an unmerged index.
+
Examples
--------