.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-ANNOTATE" "1" "07/19/2007" "Git 1.5.2.rc0.71.g4342" "Git Manual"
+.TH "GIT\-ANNOTATE" "1" "08/10/2007" "Git 1.5.3.rc4.41.g7efe" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.TP
\-M|<num>|
Detect moving lines in the file as well. When a commit moves a block of lines in a file (e.g. the original file has A and then B, and the commit changes it to B and then A), traditional \fIblame\fR algorithm typically blames the lines that were moved up (i.e. B) to the parent and assigns blame to the lines that were moved down (i.e. A) to the child commit. With this option, both groups of lines are blamed on the parent.
-.sp
-.nf
-<num> is optional but it is the lower bound on the number of
-alphanumeric characters that git must detect as moving
-within a file for it to associate those lines with the parent
-commit.
-.fi
+
+<num> is optional but it is the lower bound on the number of alphanumeric characters that git must detect as moving within a file for it to associate those lines with the parent commit.
.TP
\-C|<num>|
In addition to \-M, detect lines copied from other files that were modified in the same commit. This is useful when you reorganize your program and move code around across files. When this option is given twice, the command looks for copies from all other files in the parent for the commit that creates the file in addition.
-.sp
-.nf
-<num> is optional but it is the lower bound on the number of
-alphanumeric characters that git must detect as moving
-between files for it to associate those lines with the parent
-commit.
-.fi
+
+<num> is optional but it is the lower bound on the number of alphanumeric characters that git must detect as moving between files for it to associate those lines with the parent commit.
.TP
\-h, \-\-help
Show help message.
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-BLAME" "1" "07/19/2007" "Git 1.5.2.1.271.g90ac" "Git Manual"
+.TH "GIT\-BLAME" "1" "08/11/2007" "Git 1.5.3.rc4.41.g7efe" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
Apart from supporting file annotation, git also supports searching the development history for when a code snippet occurred in a change. This makes it possible to track when a code snippet was added to a file, moved or copied between files, and eventually deleted or replaced. It works by searching for a text string in the diff. A small example:
.sp
.nf
+.ft C
$ git log \-\-pretty=oneline \-S'blame_usage'
5040f17eba15504bad66b14a645bddd9b015ebb7 blame \-S <ancestry\-file>
ea4c7f9bf69e781dd0cd88d2bccb2bf5cc15c9a7 git\-blame: Make the output
+.ft
+
.fi
.SH "OPTIONS"
.TP
.TP
\-M|<num>|
Detect moving lines in the file as well. When a commit moves a block of lines in a file (e.g. the original file has A and then B, and the commit changes it to B and then A), traditional \fIblame\fR algorithm typically blames the lines that were moved up (i.e. B) to the parent and assigns blame to the lines that were moved down (i.e. A) to the child commit. With this option, both groups of lines are blamed on the parent.
-.sp
-.nf
-<num> is optional but it is the lower bound on the number of
-alphanumeric characters that git must detect as moving
-within a file for it to associate those lines with the parent
-commit.
-.fi
+
+<num> is optional but it is the lower bound on the number of alphanumeric characters that git must detect as moving within a file for it to associate those lines with the parent commit.
.TP
\-C|<num>|
In addition to \-M, detect lines copied from other files that were modified in the same commit. This is useful when you reorganize your program and move code around across files. When this option is given twice, the command looks for copies from all other files in the parent for the commit that creates the file in addition.
-.sp
-.nf
-<num> is optional but it is the lower bound on the number of
-alphanumeric characters that git must detect as moving
-between files for it to associate those lines with the parent
-commit.
-.fi
+
+<num> is optional but it is the lower bound on the number of alphanumeric characters that git must detect as moving between files for it to associate those lines with the parent commit.
.TP
\-h, \-\-help
Show help message.
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-CLONE" "1" "07/19/2007" "Git 1.5.3.rc1.4.gaf83" "Git Manual"
+.TH "GIT\-CLONE" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.SH "SYNOPSIS"
.sp
.nf
-\fIgit\-clone\fR [\-\-template=<template_directory>] [\-l [\-s]] [\-q] [\-n] [\-\-bare]
+\fIgit\-clone\fR [\-\-template=<template_directory>]
+ [\-l] [\-s] [\-\-no\-hardlinks] [\-q] [\-n] [\-\-bare]
[\-o <name>] [\-u <upload\-pack>] [\-\-reference <repository>]
[\-\-depth <depth>] <repository> [<directory>]
.fi
.SH "OPTIONS"
.TP
\-\-local , \-l
-When the repository to clone from is on a local machine, this flag bypasses normal "git aware" transport mechanism and clones the repository by making a copy of HEAD and everything under objects and refs directories. The files under .git/objects/ directory are hardlinked to save space when possible.
+When the repository to clone from is on a local machine, this flag bypasses normal "git aware" transport mechanism and clones the repository by making a copy of HEAD and everything under objects and refs directories. The files under .git/objects/ directory are hardlinked to save space when possible. This is now the default when the source repository is specified with /path/to/repo syntax, so it essentially is a no\-op option. To force copying instead of hardlinking (which may be desirable if you are trying to make a back\-up of your repository), but still avoid the usual "git aware" transport mechanism, \-\-no\-hardlinks can be used.
+.TP
+\-\-no\-hardlinks
+Optimize the cloning process from a repository on a local filesystem by copying files under .git/objects directory.
.TP
\-\-shared , \-s
When the repository to clone is on the local machine, instead of using hard links, automatically setup .git/objects/info/alternates to share the objects with the source repository. The resulting repository starts out without any object of its own.
\(bu
ssh://[user@]host.xz/~/path/to/repo.git
-SSH is the default transport protocol. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
+SSH is the default transport protocol over the network. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
.IP
.TP 3
\(bu
\(bu
[user@]host.xz:path/to/repo.git
-To sync with a local directory, use:
+To sync with a local directory, you can use:
.IP
.TP 3
\(bu
/path/to/repo.git/
+.TP
+\(bu
+file:///path/to/repo.git/
+
+They are mostly equivalent, except when cloning. See \fBgit\-clone\fR(1) for details.
.SH "EXAMPLES"
.TP
Clone from upstream
.sp
.nf
+.ft C
$ git clone git://git.kernel.org/pub/scm/.../linux\-2.6 my2.6
$ cd my2.6
$ make
+.ft
+
.fi
.TP
Make a local clone that borrows from the current directory, without checking things out
.sp
.nf
+.ft C
$ git clone \-l \-s \-n . ../copy
$ cd ../copy
$ git show\-branch
+.ft
+
.fi
.TP
Clone from upstream while borrowing from an existing local directory
.sp
.nf
+.ft C
$ git clone \-\-reference my2.6 \\
git://git.kernel.org/pub/scm/.../linux\-2.7 \\
my2.7
$ cd my2.7
+.ft
+
.fi
.TP
Create a bare repository to publish your changes to the public
.sp
.nf
+.ft C
$ git clone \-\-bare \-l /home/proj/.git /pub/scm/proj.git
+.ft
+
.fi
.TP
Create a repository on the kernel.org machine that borrows from Linus
.sp
.nf
+.ft C
$ git clone \-\-bare \-l \-s /pub/scm/.../torvalds/linux\-2.6.git \\
/pub/scm/.../me/subsys\-2.6.git
+.ft
+
.fi
.SH "AUTHOR"
Written by Linus Torvalds <torvalds@osdl.org>
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-FETCH" "1" "07/19/2007" "Git 1.5.3.rc0.39.g46f7" "Git Manual"
+.TH "GIT\-FETCH" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
\(bu
ssh://[user@]host.xz/~/path/to/repo.git
-SSH is the default transport protocol. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
+SSH is the default transport protocol over the network. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
.IP
.TP 3
\(bu
\(bu
[user@]host.xz:path/to/repo.git
-To sync with a local directory, use:
+To sync with a local directory, you can use:
.IP
.TP 3
\(bu
/path/to/repo.git/
+.TP
+\(bu
+file:///path/to/repo.git/
+
+They are mostly equivalent, except when cloning. See \fBgit\-clone\fR(1) for details.
.SH "REMOTES"
In addition to the above, as a short\-hand, the name of a file in $GIT_DIR/remotes directory can be given; the named file should be in the following format:
.sp
.nf
+.ft C
URL: one of the above URL format
Push: <refspec>
Pull: <refspec>
+.ft
+
.fi
Then such a short\-hand is specified in place of <repository> without <refspec> parameters on the command line, <refspec> specified on Push: lines or Pull: lines are used for git\-push and git\-fetch/git\-pull, respectively. Multiple Push: and Pull: lines may be specified for additional branch mappings.
Or, equivalently, in the $GIT_DIR/config (note the use of fetch instead of Pull:):
.sp
.nf
+.ft C
[remote "<remote>"]
url = <url>
push = <refspec>
fetch = <refspec>
+.ft
+
.fi
The name of a file in $GIT_DIR/branches directory can be specified as an older notation short\-hand; the named file should contain a single line, a URL in one of the above formats, optionally followed by a hash # and the name of remote head (URL fragment notation). $GIT_DIR/branches/<remote> file that stores a <url> without the fragment is equivalent to have this in the corresponding file in the $GIT_DIR/remotes/ directory.
.sp
.nf
+.ft C
URL: <url>
Pull: refs/heads/master:<remote>
+.ft
+
.fi
while having <url>#<head> is equivalent to
.sp
.nf
+.ft C
URL: <url>
Pull: refs/heads/<head>:<remote>
+.ft
+
.fi
.SH "SEE ALSO"
\fBgit\-pull\fR(1)
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-PULL" "1" "07/19/2007" "Git 1.5.3.rc0.39.g46f7" "Git Manual"
+.TH "GIT\-PULL" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
\(bu
ssh://[user@]host.xz/~/path/to/repo.git
-SSH is the default transport protocol. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
+SSH is the default transport protocol over the network. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
.IP
.TP 3
\(bu
\(bu
[user@]host.xz:path/to/repo.git
-To sync with a local directory, use:
+To sync with a local directory, you can use:
.IP
.TP 3
\(bu
/path/to/repo.git/
+.TP
+\(bu
+file:///path/to/repo.git/
+
+They are mostly equivalent, except when cloning. See \fBgit\-clone\fR(1) for details.
.SH "REMOTES"
In addition to the above, as a short\-hand, the name of a file in $GIT_DIR/remotes directory can be given; the named file should be in the following format:
.sp
.nf
+.ft C
URL: one of the above URL format
Push: <refspec>
Pull: <refspec>
+.ft
+
.fi
Then such a short\-hand is specified in place of <repository> without <refspec> parameters on the command line, <refspec> specified on Push: lines or Pull: lines are used for git\-push and git\-fetch/git\-pull, respectively. Multiple Push: and Pull: lines may be specified for additional branch mappings.
Or, equivalently, in the $GIT_DIR/config (note the use of fetch instead of Pull:):
.sp
.nf
+.ft C
[remote "<remote>"]
url = <url>
push = <refspec>
fetch = <refspec>
+.ft
+
.fi
The name of a file in $GIT_DIR/branches directory can be specified as an older notation short\-hand; the named file should contain a single line, a URL in one of the above formats, optionally followed by a hash # and the name of remote head (URL fragment notation). $GIT_DIR/branches/<remote> file that stores a <url> without the fragment is equivalent to have this in the corresponding file in the $GIT_DIR/remotes/ directory.
.sp
.nf
+.ft C
URL: <url>
Pull: refs/heads/master:<remote>
+.ft
+
.fi
while having <url>#<head> is equivalent to
.sp
.nf
+.ft C
URL: <url>
Pull: refs/heads/<head>:<remote>
+.ft
+
.fi
.SH "MERGE STRATEGIES"
.TP
In order to determine what remote branches to fetch (and optionally store in the tracking branches) when the command is run without any refspec parameters on the command line, values of the configuration variable remote.<origin>.fetch are consulted, and if there aren't any, $GIT_DIR/remotes/<origin> file is consulted and its Pull: lines are used. In addition to the refspec formats described in the OPTIONS section, you can have a globbing refspec that looks like this:
.sp
.nf
+.ft C
refs/heads/*:refs/remotes/origin/*
+.ft
+
.fi
A globbing refspec must have a non\-empty RHS (i.e. must store what were fetched in tracking branches), and its LHS and RHS must end with /*. The above specifies that all remote branches are tracked using tracking branches in refs/remotes/origin/ hierarchy under the same name.
Command line pull of multiple branches from one repository
.sp
.nf
+.ft C
$ git checkout master
$ git fetch origin +pu:pu maint:tmp
$ git pull . tmp
+.ft
+
.fi
This updates (or creates, as necessary) branches pu and tmp in the local repository by fetching from the branches (respectively) pu and maint from the remote repository.
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-PUSH" "1" "08/06/2007" "Git 1.5.3.rc4.15.ga2c3d" "Git Manual"
+.TH "GIT\-PUSH" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
\(bu
ssh://[user@]host.xz/~/path/to/repo.git
-SSH is the default transport protocol. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
+SSH is the default transport protocol over the network. You can optionally specify which user to log\-in as, and an alternate, scp\-like syntax is also supported. Both syntaxes support username expansion, as does the native git protocol. The following three are identical to the last three above, respectively:
.IP
.TP 3
\(bu
\(bu
[user@]host.xz:path/to/repo.git
-To sync with a local directory, use:
+To sync with a local directory, you can use:
.IP
.TP 3
\(bu
/path/to/repo.git/
+.TP
+\(bu
+file:///path/to/repo.git/
+
+They are mostly equivalent, except when cloning. See \fBgit\-clone\fR(1) for details.
.SH "REMOTES"
In addition to the above, as a short\-hand, the name of a file in $GIT_DIR/remotes directory can be given; the named file should be in the following format:
.sp
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-REV\-PARSE" "1" "07/19/2007" "Git 1.5.3.rc2.19.gc4fba" "Git Manual"
+.TH "GIT\-REV\-PARSE" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-STRIPSPACE" "1" "07/19/2007" "Git 1.5.3.rc2.19.gc4fba" "Git Manual"
+.TH "GIT\-STRIPSPACE" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.SH "NAME"
git\-stripspace \- Filter out empty lines
.SH "SYNOPSIS"
-\fIgit\-stripspace\fR < <stream>
+\fIgit\-stripspace\fR [\-s | \-\-strip\-comments] < <stream>
.SH "DESCRIPTION"
Remove multiple empty lines, and empty lines at beginning and end.
.SH "OPTIONS"
.TP
+\-s\\|\-\-strip\-comments
+In addition to empty lines, also strip lines starting with \fI#\fR.
+.TP
<stream>
Byte stream to act on.
.SH "AUTHOR"
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-TAG" "1" "07/19/2007" "Git 1.5.3.rc2.19.gc4fba" "Git Manual"
+.TH "GIT\-TAG" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
\fIgit\-tag\fR [\-a | \-s | \-u <key\-id>] [\-f] [\-m <msg> | \-F <file>] <name> [<head>]
\fIgit\-tag\fR \-d <name>\&...
\fIgit\-tag\fR [\-n [<num>]] \-l [<pattern>]
-\fIgit\-tag\fR \-v <name>
+\fIgit\-tag\fR \-v <name>\&...
.fi
.SH "DESCRIPTION"
Adds a \fItag\fR reference in .git/refs/tags/
Unless \-f is given, the tag must not yet exist in .git/refs/tags/ directory.
-If one of \-a, \-s, or \-u <key\-id> is passed, the command creates a \fItag\fR object, and requires the tag message. Unless \-m <msg> is given, an editor is started for the user to type in the tag message.
+If one of \-a, \-s, or \-u <key\-id> is passed, the command creates a \fItag\fR object, and requires the tag message. Unless \-m <msg> or \-F <file> is given, an editor is started for the user to type in the tag message.
Otherwise just the SHA1 object name of the commit object is written (i.e. a lightweight tag).
Delete existing tags with the given names.
.TP
\-v
-Verify the gpg signature of given the tag
+Verify the gpg signature of the given tag names.
.TP
\-n <num>
-<num> specifies how many lines from the annotation, if any, are printed when using \-l. The default is not to print any annotation lines.
+<num> specifies how many lines from the annotation, if any, are printed when using \-l. The default is not to print any annotation lines. If no number is given to \-n, only the first line is printed.
.TP
\-l <pattern>
-List tags with names that match the given pattern (or all if no pattern is given).
+List tags with names that match the given pattern (or all if no pattern is given). Typing "git tag" without arguments, also lists all tags.
.TP
\-m <msg>
Use the given tag message (instead of prompting)
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT\-VERIFY\-TAG" "1" "07/19/2007" "Git 1.5.3.rc2.19.gc4fba" "Git Manual"
+.TH "GIT\-VERIFY\-TAG" "1" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.SH "NAME"
-git\-verify\-tag \- Check the GPG signature of tag
+git\-verify\-tag \- Check the GPG signature of tags
.SH "SYNOPSIS"
-\fIgit\-verify\-tag\fR <tag>
+\fIgit\-verify\-tag\fR <tag>\&...
.SH "DESCRIPTION"
Validates the gpg signature created by git\-tag.
.SH "OPTIONS"
.\" It was generated using the DocBook XSL Stylesheets (version 1.69.1).
.\" Instead of manually editing it, you probably should edit the DocBook XML
.\" source for it and then use the DocBook XSL Stylesheets to regenerate it.
-.TH "GIT" "7" "08/06/2007" "Git 1.5.3.rc4.15.ga2c3d" "Git Manual"
+.TH "GIT" "7" "08/11/2007" "Git 1.5.3.rc4.67.gf9286" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.SS "Ancillary Commands"
Manipulators:
.TP
+\fBgit\-config\fR(1)
+Get and set repository or global options.
+.TP
\fBgit\-convert\-objects\fR(1)
Converts old\-style git repository.
.TP
\fBgit\-relink\fR(1)
Hardlink common objects in local repositories.
.TP
-\fBgit\-repack\fR(1)
-Pack unpacked objects in a repository.
-.TP
-\fBgit\-config\fR(1)
-Get and set repository or global options.
-.TP
\fBgit\-remote\fR(1)
manage set of tracked repositories.
+.TP
+\fBgit\-repack\fR(1)
+Pack unpacked objects in a repository.
Interrogators:
.TP
Show branches and their commits.
.TP
\fBgit\-verify\-tag\fR(1)
-Check the GPG signature of tag.
+Check the GPG signature of tags.
.TP
\fBgit\-whatchanged\fR(1)
Show logs with difference each commit introduces.