.\" 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\-ADD" "1" "07/19/2007" "Git 1.5.3.rc2.19.gc4fba" "Git Manual"
+.TH "GIT\-ADD" "1" "08/06/2007" "Git 1.5.3.rc4.15.ga2c3d" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.SH "NAME"
-git\-add \- Add file contents to the changeset to be committed next
+git\-add \- Add file contents to the index
.SH "SYNOPSIS"
\fIgit\-add\fR [\-n] [\-v] [\-f] [\-\-interactive | \-i] [\-u] [\-\-] <file>\&...
.SH "DESCRIPTION"
-All the changed file contents to be committed together in a single set of changes must be "added" with the \fIadd\fR command before using the \fIcommit\fR command. This is not only for adding new files. Even modified files must be added to the set of changes about to be committed.
+This command adds the current content of new or modified files to the index, thus staging that content for inclusion in the next commit.
-This command can be performed multiple times before a commit. The added content corresponds to the state of specified file(s) at the time the \fIadd\fR command is used. This means the \fIcommit\fR command will not consider subsequent changes to already added content if it is not added again before the commit.
+The "index" holds a snapshot of the content of the working tree, and it is this snapshot that is taken as the contents of the next commit. Thus after making any changes to the working directory, and before running the commit command, you must use the \fIadd\fR command to add any new or modified files to the index.
-The \fIgit status\fR command can be used to obtain a summary of what is included for the next commit.
+This command can be performed multiple times before a commit. It only adds the content of the specified file(s) at the time the add command is run; if you want subsequent changes included in the next commit, then you must run \fIgit add\fR again to add the new content to the index.
-This command can be used to add ignored files with \-f (force) option, but they have to be explicitly and exactly specified from the command line. File globbing and recursive behaviour do not add ignored files.
+The \fIgit status\fR command can be used to obtain a summary of which files have changes that are staged for the next commit.
+
+The \fIadd\fR command can be used to add ignored files with \-f (force) option, but they have to be explicitly and exactly specified from the command line. File globbing and recursive behaviour do not add ignored files.
Please see \fBgit\-commit\fR(1) for alternative ways to add content to a commit.
.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\-PUSH" "1" "07/19/2007" "Git 1.5.3.rc0.39.g46f7" "Git Manual"
+.TH "GIT\-PUSH" "1" "08/06/2007" "Git 1.5.3.rc4.15.ga2c3d" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
Same as \-\-receive\-pack=<git\-receive\-pack>.
.TP
\-f, \-\-force
-Usually, the command refuses to update a remote ref that is not a descendant of the local ref used to overwrite it. This flag disables the check. This can cause the remote repository to lose commits; use it with care.
+Usually, the command refuses to update a remote ref that is not an ancestor of the local ref used to overwrite it. This flag disables the check. This can cause the remote repository to lose commits; use it with care.
.TP
\-\-repo=<repo>
When no repository is specified the command defaults to "origin"; this overrides it.
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 "EXAMPLES"
.TP
.\" 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" "07/20/2007" "Git 1.5.3.rc2.22.g69a9b" "Git Manual"
+.TH "GIT" "7" "08/06/2007" "Git 1.5.3.rc4.15.ga2c3d" "Git Manual"
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.SS "Main porcelain commands"
.TP
\fBgit\-add\fR(1)
-Add file contents to the changeset to be committed next.
+Add file contents to the index.
.TP
\fBgit\-am\fR(1)
Apply a series of patches from a mailbox.
\fIGIT_PAGER\fR
This environment variable overrides $PAGER. If it is set to an empty string or to the value "cat", git will not launch a pager.
.TP
+\fIGIT_SSH\fR
+If this environment variable is set then \fBgit\-fetch\fR(1) and \fBgit\-push\fR(1) will use this command instead of ssh when they need to connect to a remote system. The \fIGIT_SSH\fR command will be given exactly two arguments: the \fIusername@host\fR (or just \fIhost\fR) from the URL and the shell command to execute on that remote system.
+
+To pass options to the program that you want to list in GIT_SSH you will need to wrap the program and options into a shell script, then set GIT_SSH to refer to the shell script.
+
+Usually it is easier to configure any desired options through your personal .ssh/config file. Please consult your ssh documentation for further details.
+.TP
\fIGIT_FLUSH\fR
If this environment variable is set to "1", then commands such as git\-blame (in incremental mode), git\-rev\-list, git\-log, git\-whatchanged, etc., will force a flush of the output stream after each commit\-oriented record have been flushed. If this variable is set to "0", the output of these commands will be done using completely buffered I/O. If this environment variable is not set, git will choose buffered or record\-oriented flushing based on whether stdout appears to be redirected to a file or not.
.TP