git-add(1)
==========

NAME
----
git-add - Add file contents to the changeset to be committed next

SYNOPSIS
--------
'git-add' [-n] [-v] [--] <file>...

DESCRIPTION
-----------
All the changed file contents to be committed together in a single set
of changes must be "added" with the 'add' command before using the
'commit' 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 can be performed multiple times before a commit. The added
content corresponds to the state of specified file(s) at the time the
'add' command is used. This means the 'commit' command will not consider
subsequent changes to already added content if it is not added again before
the commit.

The 'git status' command can be used to obtain a summary of what is included
for the next commit.

This command only adds non-ignored files, to add ignored files use
"git update-index --add".

Please see gitlink:git-commit[1] for alternative ways to add content to a
commit.


OPTIONS
-------
<file>...::
	Files to add content from.

-n::
        Don't actually add the file(s), just show if they exist.

-v::
        Be verbose.

\--::
	This option can be used to separate command-line options from
	the list of files, (useful when filenames might be mistaken
	for command-line options).


EXAMPLES
--------
git-add Documentation/\\*.txt::

	Adds content from all `\*.txt` files under `Documentation`
	directory and its subdirectories.
+
Note that the asterisk `\*` is quoted from the shell in this
example; this lets the command to include the files from
subdirectories of `Documentation/` directory.

git-add git-*.sh::

	Considers adding content from all git-*.sh scripts.
	Because this example lets shell expand the asterisk
	(i.e. you are listing the files explicitly), it does not
	consider `subdir/git-foo.sh`.

See Also
--------
gitlink:git-status[1]
gitlink:git-rm[1]
gitlink:git-mv[1]
gitlink:git-commit[1]
gitlink:git-update-index[1]

Author
------
Written by Linus Torvalds <torvalds@osdl.org>

Documentation
--------------
Documentation by Junio C Hamano and the git-list <git@vger.kernel.org>.

GIT
---
Part of the gitlink:git[7] suite

