Make git-update-ref a builtin
[gitweb.git] / Documentation / git-add.txt
index 4a03b4cfc6a2e497ceb5d61284928904af2877e1..6342ea33e4a34f19ca04c79157d80cb230c15f5c 100644 (file)
@@ -3,21 +3,74 @@ git-add(1)
 
 NAME
 ----
-git-add - Add files to the cache.
+git-add - Add files to the index file
 
 SYNOPSIS
 --------
-'git-add' <file>...
+'git-add' [-n] [-v] [--] <file>...
 
 DESCRIPTION
 -----------
-A simple wrapper for git-update-index to add files to the cache for people used
-to do "cvs add".
+A simple wrapper for git-update-index to add files to the index,
+for people used to do "cvs add".
+
+It only adds non-ignored files, to add ignored files use
+"git update-index --add".
 
 OPTIONS
 -------
 <file>...::
-       Files to add to the cache.
+       Files to add to the index (see gitlink:git-ls-files[1]).
+
+-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.
+
+See Also
+--------
+gitlink:git-rm[1]
+gitlink:git-ls-files[1]
 
 Author
 ------