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

NAME
----
git-add - Add files to the index file.

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

DESCRIPTION
-----------
A simple wrapper for git-update-index to add files to the index,
for people used to do "cvs add".


OPTIONS
-------
<file>...::
	Files to add to the index.

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

-v::
        Be verbose.


DISCUSSION
----------

The list of <file> given to the command is fed to `git-ls-files`
command to list files that are not registered in the index and
are not ignored/excluded by `$GIT_DIR/info/exclude` file or
`.gitignore` file in each directory.  This means two things:

. You can put the name of a directory on the command line, and
  the command will add all files in it and its subdirectories;

. Giving the name of a file that is already in index does not
  run `git-update-index` on that path.


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

	Adds all `\*.txt` files that are not in the index 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::

	Adds all git-*.sh scripts that are not in the index.
	Because this example lets shell expand the asterisk
	(i.e. you are listing the files explicitly), it does not
	add `subdir/git-foo.sh` to the index.


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

