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.

--::
	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).


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

