'\" t
.\"     Title: git-add
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
.\"      Date: 2024-05-16
.\"    Manual: Git Manual
.\"    Source: Git 2.45.1.204.gd8ab1d464d
.\"  Language: English
.\"
.TH "GIT\-ADD" "1" "2024\-05\-16" "Git 2\&.45\&.1\&.204\&.gd8ab1d" "Git Manual"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el       .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
git-add \- Add file contents to the index
.SH "SYNOPSIS"
.sp
.nf
\fIgit add\fR [\-\-verbose | \-v] [\-\-dry\-run | \-n] [\-\-force | \-f] [\-\-interactive | \-i] [\-\-patch | \-p]
          [\-\-edit | \-e] [\-\-[no\-]all | \-A | \-\-[no\-]ignore\-removal | [\-\-update | \-u]] [\-\-sparse]
          [\-\-intent\-to\-add | \-N] [\-\-refresh] [\-\-ignore\-errors] [\-\-ignore\-missing] [\-\-renormalize]
          [\-\-chmod=(+|\-)x] [\-\-pathspec\-from\-file=<file> [\-\-pathspec\-file\-nul]]
          [\-\-] [<pathspec>\&...]
.fi
.sp
.SH "DESCRIPTION"
.sp
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\&.
.sp
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 \fBadd\fR command to add any new or modified files to the index\&.
.sp
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 \fBgit add\fR again to add the new content to the index\&.
.sp
The \fBgit status\fR command can be used to obtain a summary of which files have changes that are staged for the next commit\&.
.sp
The \fBgit add\fR command will not add ignored files by default\&. If any ignored files were explicitly specified on the command line, \fBgit add\fR 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 \fIgit add\fR command can be used to add ignored files with the \fB\-f\fR (force) option\&.
.sp
Please see \fBgit-commit\fR(1) for alternative ways to add content to a commit\&.
.SH "OPTIONS"
.PP
<pathspec>\&...
.RS 4
Files to add content from\&. Fileglobs (e\&.g\&.
\fB*\&.c\fR) can be given to add all matching files\&. Also a leading directory name (e\&.g\&.
\fBdir\fR
to add
\fBdir/file1\fR
and
\fBdir/file2\fR) can be given to update the index to match the current state of the directory as a whole (e\&.g\&. specifying
\fBdir\fR
will record not just a file
\fBdir/file1\fR
modified in the working tree, a file
\fBdir/file2\fR
added to the working tree, but also a file
\fBdir/file3\fR
removed from the working tree)\&. Note that older versions of Git used to ignore removed files; use
\fB\-\-no\-all\fR
option if you want to add modified or new files but ignore removed ones\&.
.sp
For more details about the
\fI<pathspec>\fR
syntax, see the
\fIpathspec\fR
entry in
\fBgitglossary\fR(7)\&.
.RE
.PP
\-n, \-\-dry\-run
.RS 4
Don\(cqt actually add the file(s), just show if they exist and/or will be ignored\&.
.RE
.PP
\-v, \-\-verbose
.RS 4
Be verbose\&.
.RE
.PP
\-f, \-\-force
.RS 4
Allow adding otherwise ignored files\&.
.RE
.PP
\-\-sparse
.RS 4
Allow updating index entries outside of the sparse\-checkout cone\&. Normally,
\fBgit add\fR
refuses to update index entries whose paths do not fit within the sparse\-checkout cone, since those files might be removed from the working tree without warning\&. See
\fBgit-sparse-checkout\fR(1)
for more details\&.
.RE
.PP
\-i, \-\-interactive
.RS 4
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 \(lqInteractive mode\(rq for details\&.
.RE
.PP
\-p, \-\-patch
.RS 4
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\&.
.sp
This effectively runs
\fBadd \-\-interactive\fR, but bypasses the initial command menu and directly jumps to the
\fBpatch\fR
subcommand\&. See \(lqInteractive mode\(rq for details\&.
.RE
.PP
\-e, \-\-edit
.RS 4
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\&.
.sp
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\&.
.RE
.PP
\-u, \-\-update
.RS 4
Update the index just where it already has an entry matching
\fI<pathspec>\fR\&. This removes as well as modifies index entries to match the working tree, but adds no new files\&.
.sp
If no
\fI<pathspec>\fR
is given when
\fB\-u\fR
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)\&.
.RE
.PP
\-A, \-\-all, \-\-no\-ignore\-removal
.RS 4
Update the index not only where the working tree has a file matching
\fI<pathspec>\fR
but also where the index already has an entry\&. This adds, modifies, and removes index entries to match the working tree\&.
.sp
If no
\fI<pathspec>\fR
is given when
\fB\-A\fR
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)\&.
.RE
.PP
\-\-no\-all, \-\-ignore\-removal
.RS 4
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
\fI<pathspec>\fR
is used\&.
.sp
This option is primarily to help users who are used to older versions of Git, whose "git add
\fI<pathspec>\fR\&..." was a synonym for "git add \-\-no\-all
\fI<pathspec>\fR\&...", i\&.e\&. ignored removed files\&.
.RE
.PP
\-N, \-\-intent\-to\-add
.RS 4
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
\fBgit diff\fR
and committing them with
\fBgit commit \-a\fR\&.
.RE
.PP
\-\-refresh
.RS 4
Don\(cqt add the file(s), but only refresh their stat() information in the index\&.
.RE
.PP
\-\-ignore\-errors
.RS 4
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
\fBadd\&.ignoreErrors\fR
can be set to true to make this the default behaviour\&.
.RE
.PP
\-\-ignore\-missing
.RS 4
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\&.
.RE
.PP
\-\-no\-warn\-embedded\-repo
.RS 4
By default,
\fBgit add\fR
will warn when adding an embedded repository to the index without using
\fBgit submodule add\fR
to create an entry in
\fB\&.gitmodules\fR\&. This option will suppress the warning (e\&.g\&., if you are manually performing operations on submodules)\&.
.RE
.PP
\-\-renormalize
.RS 4
Apply the "clean" process freshly to all tracked files to forcibly add them again to the index\&. This is useful after changing
\fBcore\&.autocrlf\fR
configuration or the
\fBtext\fR
attribute in order to correct files added with wrong CRLF/LF line endings\&. This option implies
\fB\-u\fR\&. Lone CR characters are untouched, thus while a CRLF cleans to LF, a CRCRLF sequence is only partially cleaned to CRLF\&.
.RE
.PP
\-\-chmod=(+|\-)x
.RS 4
Override the executable bit of the added files\&. The executable bit is only changed in the index, the files on disk are left unchanged\&.
.RE
.PP
\-\-pathspec\-from\-file=<file>
.RS 4
Pathspec is passed in
\fI<file>\fR
instead of commandline args\&. If
\fI<file>\fR
is exactly
\fB\-\fR
then standard input is used\&. Pathspec elements are separated by LF or CR/LF\&. Pathspec elements can be quoted as explained for the configuration variable
\fBcore\&.quotePath\fR
(see
\fBgit-config\fR(1))\&. See also
\fB\-\-pathspec\-file\-nul\fR
and global
\fB\-\-literal\-pathspecs\fR\&.
.RE
.PP
\-\-pathspec\-file\-nul
.RS 4
Only meaningful with
\fB\-\-pathspec\-from\-file\fR\&. Pathspec elements are separated with NUL character and all other characters are taken literally (including newlines and quotes)\&.
.RE
.PP
\-\-
.RS 4
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)\&.
.RE
.SH "EXAMPLES"
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Adds content from all
\fB*\&.txt\fR
files under
\fBDocumentation\fR
directory and its subdirectories:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git add Documentation/\e*\&.txt
.fi
.if n \{\
.RE
.\}
.sp
Note that the asterisk
\fB*\fR
is quoted from the shell in this example; this lets the command include the files from subdirectories of
\fBDocumentation/\fR
directory\&.
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
Considers adding content from all git\-*\&.sh scripts:
.sp
.if n \{\
.RS 4
.\}
.nf
$ git add git\-*\&.sh
.fi
.if n \{\
.RE
.\}
.sp
Because this example lets the shell expand the asterisk (i\&.e\&. you are listing the files explicitly), it does not consider
\fBsubdir/git\-foo\&.sh\fR\&.
.RE
.SH "INTERACTIVE MODE"
.sp
When the command enters the interactive mode, it shows the output of the \fIstatus\fR subcommand, and then goes into its interactive command loop\&.
.sp
The command loop shows the list of subcommands available, and gives a prompt "What now> "\&. In general, when the prompt ends with a single \fI>\fR, you can pick only one of the choices given and type return, like this:
.sp
.if n \{\
.RS 4
.\}
.nf
    *** Commands ***
      1: status       2: update       3: revert       4: add untracked
      5: patch        6: diff         7: quit         8: help
    What now> 1
.fi
.if n \{\
.RE
.\}
.sp
.sp
You also could say \fBs\fR or \fBsta\fR or \fBstatus\fR above as long as the choice is unique\&.
.sp
The main command loop has 6 subcommands (plus help and quit)\&.
.PP
status
.RS 4
This shows the change between HEAD and index (i\&.e\&. what will be committed if you say
\fBgit commit\fR), and between index and working tree files (i\&.e\&. what you could stage further before
\fBgit commit\fR
using
\fBgit add\fR) for each path\&. A sample output looks like this:
.sp
.if n \{\
.RS 4
.\}
.nf
              staged     unstaged path
     1:       binary      nothing foo\&.png
     2:     +403/\-35        +1/\-1 add\-interactive\&.c
.fi
.if n \{\
.RE
.\}
.sp
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,
\fIbinary\fR
would have been shown in place of
\fInothing\fR)\&. The other file, add\-interactive\&.c, 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)\&.
.RE
.PP
update
.RS 4
This shows the status information and issues an "Update>>" prompt\&. When the prompt ends with double
\fI>>\fR, 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
\fI*\fR
to choose everything\&.
.sp
What you chose are then highlighted with
\fI*\fR, like this:
.sp
.if n \{\
.RS 4
.\}
.nf
           staged     unstaged path
  1:       binary      nothing foo\&.png
* 2:     +403/\-35        +1/\-1 add\-interactive\&.c
.fi
.if n \{\
.RE
.\}
.sp
To remove selection, prefix the input with
\fB\-\fR
like this:
.sp
.if n \{\
.RS 4
.\}
.nf
Update>> \-2
.fi
.if n \{\
.RE
.\}
.sp
After making the selection, answer with an empty line to stage the contents of working tree files for selected paths in the index\&.
.RE
.PP
revert
.RS 4
This has a very similar UI to
\fIupdate\fR, and the staged information for selected paths are reverted to that of the HEAD version\&. Reverting new paths makes them untracked\&.
.RE
.PP
add untracked
.RS 4
This has a very similar UI to
\fIupdate\fR
and
\fIrevert\fR, and lets you add untracked paths to the index\&.
.RE
.PP
patch
.RS 4
This lets you choose one path out of a
\fIstatus\fR
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:
.sp
.if n \{\
.RS 4
.\}
.nf
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
p \- print the current hunk
? \- print help
.fi
.if n \{\
.RE
.\}
.sp
After deciding the fate for all hunks, if there is any hunk that was chosen, the index is updated with the selected hunks\&.
.sp
You can omit having to type return here, by setting the configuration variable
\fBinteractive\&.singleKey\fR
to
\fBtrue\fR\&.
.RE
.PP
diff
.RS 4
This lets you review what will be committed (i\&.e\&. between HEAD and index)\&.
.RE
.SH "EDITING PATCHES"
.sp
Invoking \fBgit add \-e\fR or selecting \fBe\fR 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\&.
.PP
added content
.RS 4
Added content is represented by lines beginning with "+"\&. You can prevent staging any addition lines by deleting them\&.
.RE
.PP
removed content
.RS 4
Removed content is represented by lines beginning with "\-"\&. You can prevent staging their removal by converting the "\-" to a " " (space)\&.
.RE
.PP
modified content
.RS 4
Modified content is represented by "\-" lines (removing the old content) followed by "+" lines (adding the replacement content)\&. You can prevent staging the modification by converting "\-" lines to " ", and removing "+" lines\&. Beware that modifying only half of the pair is likely to introduce confusing changes to the index\&.
.RE
.sp
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\&.
.sp
Avoid using these constructs, or do so with extreme caution\&.
.PP
removing untouched content
.RS 4
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\&.
.RE
.PP
modifying existing content
.RS 4
One can also modify context lines by staging them for removal (by converting " " to "\-") and adding a "+" line with the new content\&. Similarly, one can modify "+" lines for existing additions or modifications\&. In all cases, the new modification will appear reverted in the working tree\&.
.RE
.PP
new content
.RS 4
You may also add new content that does not exist in the patch; simply add new lines, each starting with "+"\&. The addition will appear reverted in the working tree\&.
.RE
.sp
There are also several operations which should be avoided entirely, as they will make the patch impossible to apply:
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
adding context (" ") or removal ("\-") lines
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
deleting context or removal lines
.RE
.sp
.RS 4
.ie n \{\
\h'-04'\(bu\h'+03'\c
.\}
.el \{\
.sp -1
.IP \(bu 2.3
.\}
modifying the contents of context or removal lines
.RE
.SH "CONFIGURATION"
.sp
Everything below this line in this section is selectively included from the \fBgit-config\fR(1) documentation\&. The content is the same as what\(cqs found there:
.PP
add\&.ignoreErrors, add\&.ignore\-errors (deprecated)
.RS 4
Tells
\fIgit add\fR
to continue adding files when some files cannot be added due to indexing errors\&. Equivalent to the
\fB\-\-ignore\-errors\fR
option of
\fBgit-add\fR(1)\&.
\fBadd\&.ignore\-errors\fR
is deprecated, as it does not follow the usual naming convention for configuration variables\&.
.RE
.PP
add\&.interactive\&.useBuiltin
.RS 4
Unused configuration variable\&. Used in Git versions v2\&.25\&.0 to v2\&.36\&.0 to enable the built\-in version of
\fBgit-add\fR(1)\*(Aqs interactive mode, which then became the default in Git versions v2\&.37\&.0 to v2\&.39\&.0\&.
.RE
.SH "SEE ALSO"
.sp
\fBgit-status\fR(1) \fBgit-rm\fR(1) \fBgit-reset\fR(1) \fBgit-mv\fR(1) \fBgit-commit\fR(1) \fBgit-update-index\fR(1)
.SH "GIT"
.sp
Part of the \fBgit\fR(1) suite
