This causes cgit to serve error pages, which is undesirable. This reverts commit5229c9b232, reversing changes made tof2b211131f.
		
			
				
	
	
		
			424 lines
		
	
	
	
		
			15 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
			
		
		
	
	
			424 lines
		
	
	
	
		
			15 KiB
		
	
	
	
		
			Text
		
	
	
	
	
	
| git-add(1)
 | |
| ==========
 | |
| 
 | |
| NAME
 | |
| ----
 | |
| git-add - Add file contents to the index
 | |
| 
 | |
| SYNOPSIS
 | |
| --------
 | |
| [verse]
 | |
| 'git add' [--verbose | -v] [--dry-run | -n] [--force | -f] [--interactive | -i] [--patch | -p]
 | |
| 	  [--edit | -e] [--[no-]all | --[no-]ignore-removal | [--update | -u]]
 | |
| 	  [--intent-to-add | -N] [--refresh] [--ignore-errors] [--ignore-missing] [--renormalize]
 | |
| 	  [--chmod=(+|-)x] [--] [<pathspec>...]
 | |
| 
 | |
| DESCRIPTION
 | |
| -----------
 | |
| This command updates the index using the current content found in
 | |
| the working tree, to prepare the content staged for the next commit.
 | |
| It typically adds the current content of existing paths as a whole,
 | |
| but with some options it can also be used to add content with
 | |
| only part of the changes made to the working tree files applied, or
 | |
| remove paths that do not exist in the working tree anymore.
 | |
| 
 | |
| 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 tree, and before running
 | |
| the commit command, you must use the `add` command to add any new or
 | |
| modified files to the index.
 | |
| 
 | |
| 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 `git add` again to add the new content to the index.
 | |
| 
 | |
| The `git status` command can be used to obtain a summary of which
 | |
| files have changes that are staged for the next commit.
 | |
| 
 | |
| The `git add` command will not add ignored files by default.  If any
 | |
| ignored files were explicitly specified on the command line, `git add`
 | |
| will fail with a list of ignored files.  Ignored files reached by
 | |
| directory recursion or filename globbing performed by Git (quote your
 | |
| globs before the shell) will be silently ignored.  The 'git add' command can
 | |
| be used to add ignored files with the `-f` (force) option.
 | |
| 
 | |
| Please see linkgit:git-commit[1] for alternative ways to add content to a
 | |
| commit.
 | |
| 
 | |
| 
 | |
| OPTIONS
 | |
| -------
 | |
| <pathspec>...::
 | |
| 	Files to add content from.  Fileglobs (e.g. `*.c`) can
 | |
| 	be given to add all matching files.  Also a
 | |
| 	leading directory name (e.g. `dir` to add `dir/file1`
 | |
| 	and `dir/file2`) can be given to update the index to
 | |
| 	match the current state of the directory as a whole (e.g.
 | |
| 	specifying `dir` will record not just a file `dir/file1`
 | |
| 	modified in the working tree, a file `dir/file2` added to
 | |
| 	the working tree, but also a file `dir/file3` removed from
 | |
| 	the working tree). Note that older versions of Git used
 | |
| 	to ignore removed files; use `--no-all` option if you want
 | |
| 	to add modified or new files but ignore removed ones.
 | |
| +
 | |
| For more details about the <pathspec> syntax, see the 'pathspec' entry
 | |
| in linkgit:gitglossary[7].
 | |
| 
 | |
| -n::
 | |
| --dry-run::
 | |
| 	Don't actually add the file(s), just show if they exist and/or will
 | |
| 	be ignored.
 | |
| 
 | |
| -v::
 | |
| --verbose::
 | |
|         Be verbose.
 | |
| 
 | |
| -f::
 | |
| --force::
 | |
| 	Allow adding otherwise ignored files.
 | |
| 
 | |
| -i::
 | |
| --interactive::
 | |
| 	Add modified contents in the working tree interactively to
 | |
| 	the index. Optional path arguments may be supplied to limit
 | |
| 	operation to a subset of the working tree. See ``Interactive
 | |
| 	mode'' for details.
 | |
| 
 | |
| -p::
 | |
| --patch::
 | |
| 	Interactively choose hunks of patch between the index and the
 | |
| 	work tree and add them to the index. This gives the user a chance
 | |
| 	to review the difference before adding modified contents to the
 | |
| 	index.
 | |
| +
 | |
| This effectively runs `add --interactive`, but bypasses the
 | |
| initial command menu and directly jumps to the `patch` subcommand.
 | |
| See ``Interactive mode'' for details.
 | |
| 
 | |
| -e::
 | |
| --edit::
 | |
| 	Open the diff vs. the index in an editor and let the user
 | |
| 	edit it.  After the editor was closed, adjust the hunk headers
 | |
| 	and apply the patch to the index.
 | |
| +
 | |
| The intent of this option is to pick and choose lines of the patch to
 | |
| apply, or even to modify the contents of lines to be staged. This can be
 | |
| quicker and more flexible than using the interactive hunk selector.
 | |
| However, it is easy to confuse oneself and create a patch that does not
 | |
| apply to the index. See EDITING PATCHES below.
 | |
| 
 | |
| -u::
 | |
| --update::
 | |
| 	Update the index just where it already has an entry matching
 | |
| 	<pathspec>.  This removes as well as modifies index entries to
 | |
| 	match the working tree, but adds no new files.
 | |
| +
 | |
| If no <pathspec> is given when `-u` option is used, all
 | |
| tracked files in the entire working tree are updated (old versions
 | |
| of Git used to limit the update to the current directory and its
 | |
| subdirectories).
 | |
| 
 | |
| -A::
 | |
| --all::
 | |
| --no-ignore-removal::
 | |
| 	Update the index not only where the working tree has a file
 | |
| 	matching <pathspec> but also where the index already has an
 | |
| 	entry. This adds, modifies, and removes index entries to
 | |
| 	match the working tree.
 | |
| +
 | |
| If no <pathspec> is given when `-A` option is used, all
 | |
| files in the entire working tree are updated (old versions
 | |
| of Git used to limit the update to the current directory and its
 | |
| subdirectories).
 | |
| 
 | |
| --no-all::
 | |
| --ignore-removal::
 | |
| 	Update the index by adding new files that are unknown to the
 | |
| 	index and files modified in the working tree, but ignore
 | |
| 	files that have been removed from the working tree.  This
 | |
| 	option is a no-op when no <pathspec> is used.
 | |
| +
 | |
| This option is primarily to help users who are used to older
 | |
| versions of Git, whose "git add <pathspec>..." was a synonym
 | |
| for "git add --no-all <pathspec>...", i.e. ignored removed files.
 | |
| 
 | |
| -N::
 | |
| --intent-to-add::
 | |
| 	Record only the fact that the path will be added later. An entry
 | |
| 	for the path is placed in the index with no content. This is
 | |
| 	useful for, among other things, showing the unstaged content of
 | |
| 	such files with `git diff` and committing them with `git commit
 | |
| 	-a`.
 | |
| 
 | |
| --refresh::
 | |
| 	Don't add the file(s), but only refresh their stat()
 | |
| 	information in the index.
 | |
| 
 | |
| --ignore-errors::
 | |
| 	If some files could not be added because of errors indexing
 | |
| 	them, do not abort the operation, but continue adding the
 | |
| 	others. The command shall still exit with non-zero status.
 | |
| 	The configuration variable `add.ignoreErrors` can be set to
 | |
| 	true to make this the default behaviour.
 | |
| 
 | |
| --ignore-missing::
 | |
| 	This option can only be used together with --dry-run. By using
 | |
| 	this option the user can check if any of the given files would
 | |
| 	be ignored, no matter if they are already present in the work
 | |
| 	tree or not.
 | |
| 
 | |
| --no-warn-embedded-repo::
 | |
| 	By default, `git add` will warn when adding an embedded
 | |
| 	repository to the index without using `git submodule add` to
 | |
| 	create an entry in `.gitmodules`. This option will suppress the
 | |
| 	warning (e.g., if you are manually performing operations on
 | |
| 	submodules).
 | |
| 
 | |
| --renormalize::
 | |
| 	Apply the "clean" process freshly to all tracked files to
 | |
| 	forcibly add them again to the index.  This is useful after
 | |
| 	changing `core.autocrlf` configuration or the `text` attribute
 | |
| 	in order to correct files added with wrong CRLF/LF line endings.
 | |
| 	This option implies `-u`.
 | |
| 
 | |
| --chmod=(+|-)x::
 | |
| 	Override the executable bit of the added files.  The executable
 | |
| 	bit is only changed in the index, the files on disk are left
 | |
| 	unchanged.
 | |
| 
 | |
| \--::
 | |
| 	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
 | |
| --------
 | |
| 
 | |
| * Adds content from all `*.txt` files under `Documentation` directory
 | |
|   and its subdirectories:
 | |
| +
 | |
| ------------
 | |
| $ git add Documentation/\*.txt
 | |
| ------------
 | |
| +
 | |
| Note that the asterisk `*` is quoted from the shell in this
 | |
| example; this lets the command include the files from
 | |
| subdirectories of `Documentation/` directory.
 | |
| 
 | |
| * Considers adding content from all git-*.sh scripts:
 | |
| +
 | |
| ------------
 | |
| $ git add git-*.sh
 | |
| ------------
 | |
| +
 | |
| Because this example lets the shell expand the asterisk (i.e. you are
 | |
| listing the files explicitly), it does not consider
 | |
| `subdir/git-foo.sh`.
 | |
| 
 | |
| INTERACTIVE MODE
 | |
| ----------------
 | |
| When the command enters the interactive mode, it shows the
 | |
| output of the 'status' subcommand, and then goes into its
 | |
| interactive command loop.
 | |
| 
 | |
| The command loop shows the list of subcommands available, and
 | |
| gives a prompt "What now> ".  In general, when the prompt ends
 | |
| with a single '>', you can pick only one of the choices given
 | |
| and type return, like this:
 | |
| 
 | |
| ------------
 | |
|     *** Commands ***
 | |
|       1: status       2: update       3: revert       4: add untracked
 | |
|       5: patch        6: diff         7: quit         8: help
 | |
|     What now> 1
 | |
| ------------
 | |
| 
 | |
| You also could say `s` or `sta` or `status` above as long as the
 | |
| choice is unique.
 | |
| 
 | |
| The main command loop has 6 subcommands (plus help and quit).
 | |
| 
 | |
| status::
 | |
| 
 | |
|    This shows the change between HEAD and index (i.e. what will be
 | |
|    committed if you say `git commit`), and between index and
 | |
|    working tree files (i.e. what you could stage further before
 | |
|    `git commit` using `git add`) for each path.  A sample output
 | |
|    looks like this:
 | |
| +
 | |
| ------------
 | |
|               staged     unstaged path
 | |
|      1:       binary      nothing foo.png
 | |
|      2:     +403/-35        +1/-1 git-add--interactive.perl
 | |
| ------------
 | |
| +
 | |
| It shows that foo.png has differences from HEAD (but that is
 | |
| binary so line count cannot be shown) and there is no
 | |
| difference between indexed copy and the working tree
 | |
| version (if the working tree version were also different,
 | |
| 'binary' would have been shown in place of 'nothing').  The
 | |
| other file, git-add{litdd}interactive.perl, has 403 lines added
 | |
| and 35 lines deleted if you commit what is in the index, but
 | |
| working tree file has further modifications (one addition and
 | |
| one deletion).
 | |
| 
 | |
| update::
 | |
| 
 | |
|    This shows the status information and issues an "Update>>"
 | |
|    prompt.  When the prompt ends with double '>>', you can
 | |
|    make more than one selection, concatenated with whitespace or
 | |
|    comma.  Also you can say ranges.  E.g. "2-5 7,9" to choose
 | |
|    2,3,4,5,7,9 from the list.  If the second number in a range is
 | |
|    omitted, all remaining patches are taken.  E.g. "7-" to choose
 | |
|    7,8,9 from the list.  You can say '*' to choose everything.
 | |
| +
 | |
| What you chose are then highlighted with '*',
 | |
| like this:
 | |
| +
 | |
| ------------
 | |
|            staged     unstaged path
 | |
|   1:       binary      nothing foo.png
 | |
| * 2:     +403/-35        +1/-1 git-add--interactive.perl
 | |
| ------------
 | |
| +
 | |
| To remove selection, prefix the input with `-`
 | |
| like this:
 | |
| +
 | |
| ------------
 | |
| Update>> -2
 | |
| ------------
 | |
| +
 | |
| After making the selection, answer with an empty line to stage the
 | |
| contents of working tree files for selected paths in the index.
 | |
| 
 | |
| revert::
 | |
| 
 | |
|   This has a very similar UI to 'update', and the staged
 | |
|   information for selected paths are reverted to that of the
 | |
|   HEAD version.  Reverting new paths makes them untracked.
 | |
| 
 | |
| add untracked::
 | |
| 
 | |
|   This has a very similar UI to 'update' and
 | |
|   'revert', and lets you add untracked paths to the index.
 | |
| 
 | |
| patch::
 | |
| 
 | |
|   This lets you choose one path out of a 'status' like selection.
 | |
|   After choosing the path, it presents the diff between the index
 | |
|   and the working tree file and asks you if you want to stage
 | |
|   the change of each hunk.  You can select one of the following
 | |
|   options and type return:
 | |
| 
 | |
|        y - stage this hunk
 | |
|        n - do not stage this hunk
 | |
|        q - quit; do not stage this hunk or any of the remaining ones
 | |
|        a - stage this hunk and all later hunks in the file
 | |
|        d - do not stage this hunk or any of the later hunks in the file
 | |
|        g - select a hunk to go to
 | |
|        / - search for a hunk matching the given regex
 | |
|        j - leave this hunk undecided, see next undecided hunk
 | |
|        J - leave this hunk undecided, see next hunk
 | |
|        k - leave this hunk undecided, see previous undecided hunk
 | |
|        K - leave this hunk undecided, see previous hunk
 | |
|        s - split the current hunk into smaller hunks
 | |
|        e - manually edit the current hunk
 | |
|        ? - print help
 | |
| +
 | |
| After deciding the fate for all hunks, if there is any hunk
 | |
| that was chosen, the index is updated with the selected hunks.
 | |
| +
 | |
| You can omit having to type return here, by setting the configuration
 | |
| variable `interactive.singleKey` to `true`.
 | |
| 
 | |
| diff::
 | |
| 
 | |
|   This lets you review what will be committed (i.e. between
 | |
|   HEAD and index).
 | |
| 
 | |
| 
 | |
| EDITING PATCHES
 | |
| ---------------
 | |
| 
 | |
| Invoking `git add -e` or selecting `e` from the interactive hunk
 | |
| selector will open a patch in your editor; after the editor exits, the
 | |
| result is applied to the index. You are free to make arbitrary changes
 | |
| to the patch, but note that some changes may have confusing results, or
 | |
| even result in a patch that cannot be applied.  If you want to abort the
 | |
| operation entirely (i.e., stage nothing new in the index), simply delete
 | |
| all lines of the patch. The list below describes some common things you
 | |
| may see in a patch, and which editing operations make sense on them.
 | |
| 
 | |
| --
 | |
| added content::
 | |
| 
 | |
| Added content is represented by lines beginning with "{plus}". You can
 | |
| prevent staging any addition lines by deleting them.
 | |
| 
 | |
| removed content::
 | |
| 
 | |
| Removed content is represented by lines beginning with "-". You can
 | |
| prevent staging their removal by converting the "-" to a " " (space).
 | |
| 
 | |
| modified content::
 | |
| 
 | |
| Modified content is represented by "-" lines (removing the old content)
 | |
| followed by "{plus}" lines (adding the replacement content). You can
 | |
| prevent staging the modification by converting "-" lines to " ", and
 | |
| removing "{plus}" lines. Beware that modifying only half of the pair is
 | |
| likely to introduce confusing changes to the index.
 | |
| --
 | |
| 
 | |
| There are also more complex operations that can be performed. But beware
 | |
| that because the patch is applied only to the index and not the working
 | |
| tree, the working tree will appear to "undo" the change in the index.
 | |
| For example, introducing a new line into the index that is in neither
 | |
| the HEAD nor the working tree will stage the new line for commit, but
 | |
| the line will appear to be reverted in the working tree.
 | |
| 
 | |
| Avoid using these constructs, or do so with extreme caution.
 | |
| 
 | |
| --
 | |
| removing untouched content::
 | |
| 
 | |
| Content which does not differ between the index and working tree may be
 | |
| shown on context lines, beginning with a " " (space).  You can stage
 | |
| context lines for removal by converting the space to a "-". The
 | |
| resulting working tree file will appear to re-add the content.
 | |
| 
 | |
| modifying existing content::
 | |
| 
 | |
| One can also modify context lines by staging them for removal (by
 | |
| converting " " to "-") and adding a "{plus}" line with the new content.
 | |
| Similarly, one can modify "{plus}" lines for existing additions or
 | |
| modifications. In all cases, the new modification will appear reverted
 | |
| in the working tree.
 | |
| 
 | |
| new content::
 | |
| 
 | |
| You may also add new content that does not exist in the patch; simply
 | |
| add new lines, each starting with "{plus}". The addition will appear
 | |
| reverted in the working tree.
 | |
| --
 | |
| 
 | |
| There are also several operations which should be avoided entirely, as
 | |
| they will make the patch impossible to apply:
 | |
| 
 | |
| * adding context (" ") or removal ("-") lines
 | |
| * deleting context or removal lines
 | |
| * modifying the contents of context or removal lines
 | |
| 
 | |
| SEE ALSO
 | |
| --------
 | |
| linkgit:git-status[1]
 | |
| linkgit:git-rm[1]
 | |
| linkgit:git-reset[1]
 | |
| linkgit:git-mv[1]
 | |
| linkgit:git-commit[1]
 | |
| linkgit:git-update-index[1]
 | |
| 
 | |
| GIT
 | |
| ---
 | |
| Part of the linkgit:git[1] suite
 |