Autogenerated man pages for v1.1.2-g9e9b
authorJunio C Hamano <junio@hera.kernel.org>
Sat, 14 Jan 2006 03:59:08 +0000 (19:59 -0800)
committerJunio C Hamano <junio@hera.kernel.org>
Sat, 14 Jan 2006 03:59:08 +0000 (19:59 -0800)
man1/git-checkout.1
man1/git-commit.1
man1/git-fetch.1
man1/git-pull.1
man1/git-push.1
man1/git-reset.1

index aa358952d04451b99988208cffa880de2368496f..a3529cfd99132ee476c7cc7e12753217fad12371 100755 (executable)
@@ -23,7 +23,7 @@ git-checkout \- Checkout and switch to a branch.
 .SH "SYNOPSIS"
 
 
-git\-checkout [\-f] [\-b <new_branch>] [<branch>] [<paths>...]
+git\-checkout [\-f] [\-b <new_branch>] [\-m] [<branch>] [<paths>...]
 
 .SH "DESCRIPTION"
 
@@ -43,6 +43,12 @@ Force an re\-read of everything\&.
 \-b
 Create a new branch and start it at <branch>\&.
 
+.TP
+\-m
+If you have local modifications to a file that is different between the current branch and the branch you are switching to, the command refuses to switch branches, to preserve your modifications in context\&. With this option, a three\-way merge between the current branch, your working tree contents, and the new branch is done, and you will be on the new branch\&.
+
+When a merge conflict happens, the index entries for conflicting paths are left unmerged, and you need to resolve the conflicts and mark the resolved paths with git update\-index\&.
+
 .TP
 <new_branch>
 Name for the new branch\&.
@@ -51,11 +57,13 @@ Name for the new branch\&.
 <branch>
 Branch to checkout; may be any object ID that resolves to a commit\&. Defaults to HEAD\&.
 
-.SH "EXAMPLE"
-
+.SH "EXAMPLES"
 
+.TP 3
+1.
 The following sequence checks out the master branch, reverts the Makefile to two revisions back, deletes hello\&.c by mistake, and gets it back from the index\&.
 
+
 .IP
 $ git checkout master 
 $ git checkout master~2 Makefile 
@@ -64,12 +72,42 @@ $ git checkout hello\&.c
 
  switch branch
  take out a file out of other commit
- or "git checkout \-\- hello\&.c", as in the next example\&.
+ or "git checkout \-\- hello\&.c", as in the next example\&.If you have an unfortunate branch that is named hello\&.c, the last step above would be confused as an instruction to switch to that branch\&. You should instead write:
+
+.IP
+$ git checkout \-\- hello\&.c.TP
+2.
+After working in a wrong branch, switching to the correct branch you would want to is done with:
+
+
+.IP
+$ git checkout mytopicHowever, your "wrong" branch and correct "mytopic" branch may differ in files that you have locally modified, in which case, the above checkout would fail like this:
 
-If you have an unfortunate branch that is named hello\&.c, the last step above would be confused as an instruction to switch to that branch\&. You should instead write:
 
 .IP
-$ git checkout \-\- hello\&.c
+$ git checkout mytopic
+fatal: Entry 'frotz' not uptodate\&. Cannot merge\&.You can give the \-m flag to the command, which would try a three\-way merge:
+
+
+.IP
+$ git checkout \-m mytopic
+Auto\-merging frotzAfter this three\-way merge, the local modifications are _not_ registered in your index file, so git diff would show you what changes you made since the tip of the new branch\&.
+.TP
+3.
+When a merge conflict happens during switching branches with the \-m option, you would see something like this:
+
+
+.IP
+$ git checkout \-m mytopic
+Auto\-merging frotz
+merge: warning: conflicts during merge
+ERROR: Merge conflict in frotz
+fatal: merge program failedAt this point, git diff shows the changes cleanly merged as in the previous example, as well as the changes in the conflicted files\&. Edit and resolve the conflict and mark it resolved with git update\-index as usual:
+
+.IP
+$ edit frotz
+$ git update\-index frotz.LP
+
 .SH "AUTHOR"
 
 
index 32913cf90f7ddd6a056ca82ab585d88a234b5e91..ea541bd8d6d3e5a30e7256b0ebe52b3c8eb124db 100755 (executable)
@@ -39,7 +39,7 @@ This command can run commit\-msg, pre\-commit, and post\-commit hooks\&. See hoo
 
 .TP
 \-a|\-\-all
-Update all paths in the index file\&.
+Update all paths in the index file\&. This flag notices files that have been modified and deleted, but new files you have not told about git are not affected\&.
 
 .TP
 \-c or \-C <commit>
index 69706331e2aaa829499034ed19146d22ace8626d..ab22ec78269e7ad508a6498a386ef5e2145b43a1 100755 (executable)
@@ -181,7 +181,7 @@ Some short\-cut notations are also supported\&.
 .RS
 .TP 3
 \(bu
-For backward compatibility, tag is almost ignored; it just makes the following parameter <tag> to mean a refspec refs/tags/<tag>:refs/tags/<tag>\&.
+ tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>; used with pull or fetch, it requests fetching everything up to the given tag\&.
 .TP
 \(bu
 A parameter <ref> without a colon is equivalent to <ref>: when pulling/fetching, and <ref>:<ref> when pushing\&. That is, do not store it locally if fetching, and update the same name if pushing\&.
index e32eff5888c80524475cda8711fea93e53c77a34..989b34d19729cb53ecc663c71bbbf5dc798aea26 100755 (executable)
@@ -193,7 +193,7 @@ Some short\-cut notations are also supported\&.
 .RS
 .TP 3
 \(bu
-For backward compatibility, tag is almost ignored; it just makes the following parameter <tag> to mean a refspec refs/tags/<tag>:refs/tags/<tag>\&.
+ tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>; used with pull or fetch, it requests fetching everything up to the given tag\&.
 .TP
 \(bu
 A parameter <ref> without a colon is equivalent to <ref>: when pulling/fetching, and <ref>:<ref> when pushing\&. That is, do not store it locally if fetching, and update the same name if pushing\&.
index 937de999bc47ae65298424086ef8fde6acb068af..9819c64f43fd03c88630b56d138fa9ed45e285d2 100755 (executable)
@@ -157,7 +157,7 @@ Some short\-cut notations are also supported\&.
 .RS
 .TP 3
 \(bu
-For backward compatibility, tag is almost ignored; it just makes the following parameter <tag> to mean a refspec refs/tags/<tag>:refs/tags/<tag>\&.
+ tag <tag> means the same as refs/tags/<tag>:refs/tags/<tag>; used with pull or fetch, it requests fetching everything up to the given tag\&.
 .TP
 \(bu
 A parameter <ref> without a colon is equivalent to <ref>: when pulling/fetching, and <ref>:<ref> when pushing\&. That is, do not store it locally if fetching, and update the same name if pushing\&.
index 8c8a23258f6da7ff28f42f4f4057862815bca227..c3015ecb8946ab34f17f1bb0243d3166ff78cf67 100755 (executable)
@@ -151,6 +151,27 @@ 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\&.
+.TP
+Interrupted workflow
+You can get interrupted by an ungent fix request while you are still in the middle of a large change\&. The files in your working tree are not in any shape to be committed yet, but you need to get to the other branch for a quick bugfix\&.
+
+.IP
+$ git checkout feature ;# you were working in "feature" branch and
+$ work work work       ;# got interrupted
+$ git commit \-a \-m 'snapshot WIP' 
+$ 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 makes
+    your working tree in 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\&.
 .SH "AUTHOR"