From 5196ee133c165a90e02477c7f81618ecb171c522 Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Fri, 13 Jan 2006 19:59:08 -0800 Subject: [PATCH] Autogenerated man pages for v1.1.2-g9e9b --- man1/git-checkout.1 | 50 +++++++++++++++++++++++++++++++++++++++------ man1/git-commit.1 | 2 +- man1/git-fetch.1 | 2 +- man1/git-pull.1 | 2 +- man1/git-push.1 | 2 +- man1/git-reset.1 | 21 +++++++++++++++++++ 6 files changed, 69 insertions(+), 10 deletions(-) diff --git a/man1/git-checkout.1 b/man1/git-checkout.1 index aa358952d..a3529cfd9 100755 --- a/man1/git-checkout.1 +++ b/man1/git-checkout.1 @@ -23,7 +23,7 @@ git-checkout \- Checkout and switch to a branch. .SH "SYNOPSIS" -git\-checkout [\-f] [\-b ] [] [...] +git\-checkout [\-f] [\-b ] [\-m] [] [...] .SH "DESCRIPTION" @@ -43,6 +43,12 @@ Force an re\-read of everything\&. \-b Create a new branch and start it at \&. +.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 Name for the new branch\&. @@ -51,11 +57,13 @@ Name for the new 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" diff --git a/man1/git-commit.1 b/man1/git-commit.1 index 32913cf90..ea541bd8d 100755 --- a/man1/git-commit.1 +++ b/man1/git-commit.1 @@ -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 diff --git a/man1/git-fetch.1 b/man1/git-fetch.1 index 69706331e..ab22ec782 100755 --- a/man1/git-fetch.1 +++ b/man1/git-fetch.1 @@ -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 to mean a refspec refs/tags/:refs/tags/\&. + tag means the same as refs/tags/:refs/tags/; used with pull or fetch, it requests fetching everything up to the given tag\&. .TP \(bu A parameter without a colon is equivalent to : when pulling/fetching, and : when pushing\&. That is, do not store it locally if fetching, and update the same name if pushing\&. diff --git a/man1/git-pull.1 b/man1/git-pull.1 index e32eff588..989b34d19 100755 --- a/man1/git-pull.1 +++ b/man1/git-pull.1 @@ -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 to mean a refspec refs/tags/:refs/tags/\&. + tag means the same as refs/tags/:refs/tags/; used with pull or fetch, it requests fetching everything up to the given tag\&. .TP \(bu A parameter without a colon is equivalent to : when pulling/fetching, and : when pushing\&. That is, do not store it locally if fetching, and update the same name if pushing\&. diff --git a/man1/git-push.1 b/man1/git-push.1 index 937de999b..9819c64f4 100755 --- a/man1/git-push.1 +++ b/man1/git-push.1 @@ -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 to mean a refspec refs/tags/:refs/tags/\&. + tag means the same as refs/tags/:refs/tags/; used with pull or fetch, it requests fetching everything up to the given tag\&. .TP \(bu A parameter without a colon is equivalent to : when pulling/fetching, and : when pushing\&. That is, do not store it locally if fetching, and update the same name if pushing\&. diff --git a/man1/git-reset.1 b/man1/git-reset.1 index 8c8a23258..c3015ecb8 100755 --- a/man1/git-reset.1 +++ b/man1/git-reset.1 @@ -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" -- 2.26.2