'\" t
.\"     Title: git-add
.\"    Author: [FIXME: author] [see http://www.docbook.org/tdg5/en/html/author]
.\" Generator: DocBook XSL Stylesheets v1.79.2 <http://docbook.sf.net/>
.\"      Date: 2025-11-16
.\"    Manual: Git Manual
.\"    Source: Git 2.52.0.rc2.22.gc93f1a0fa3
.\"  Language: English
.\"
.TH "GIT\-ADD" "1" "2025-11-16" "Git 2\&.52\&.0\&.rc2\&.22\&.gc" "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
\fBgit\fR \fBadd\fR [\fB\-\-verbose\fR | \fB\-v\fR] [\fB\-\-dry\-run\fR | \fB\-n\fR] [\fB\-\-force\fR | \fB\-f\fR] [\fB\-\-interactive\fR | \fB\-i\fR] [\fB\-\-patch\fR | \fB\-p\fR]
	[\fB\-\-edit\fR | \fB\-e\fR] [\fB\-\-\fR[\fBno\-\fR]\fBall\fR | \fB\-A\fR | \fB\-\-\fR[\fBno\-\fR]\fBignore\-removal\fR | [\fB\-\-update\fR | \fB\-u\fR]] [\fB\-\-sparse\fR]
	[\fB\-\-intent\-to\-add\fR | \fB\-N\fR] [\fB\-\-refresh\fR] [\fB\-\-ignore\-errors\fR] [\fB\-\-ignore\-missing\fR] [\fB\-\-renormalize\fR]
	[\fB\-\-chmod=\fR(\fB+\fR|\fB\-\fR)\fBx\fR] [\fB\-\-pathspec\-from\-file=\fR\fI<file>\fR [\fB\-\-pathspec\-file\-nul\fR]]
	[\fB\-\-\fR] [\fI<pathspec>\fR\&...\:]
.fi
.SH "DESCRIPTION"
.sp
Add contents of new or changed files to the index\&. The "index" (also known as the "staging area") is what you use to prepare the contents of the next commit\&.
.sp
When you run \fBgit\fR \fBcommit\fR without any other arguments, it will only commit staged changes\&. For example, if you\(cqve edited \fBfile\&.c\fR and want to commit your changes to that file, you can run:
.sp
.if n \{\
.RS 4
.\}
.nf
git add file\&.c
git commit
.fi
.if n \{\
.RE
.\}
.sp
You can also add only part of your changes to a file with \fBgit\fR \fBadd\fR \fB\-p\fR\&.
.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\fR \fBadd\fR again to add the new content to the index\&.
.sp
The \fBgit\fR \fBstatus\fR command can be used to obtain a summary of which files have changes that are staged for the next commit\&.
.sp
The \fBgit\fR \fBadd\fR command will not add ignored files by default\&. You can use the \fB\-\-force\fR option to add ignored files\&. If you specify the exact filename of an ignored file, \fBgit\fR \fBadd\fR will fail with a list of ignored files\&. Otherwise it will silently ignore the file\&.
.sp
Please see \fBgit-commit\fR(1) for alternative ways to add content to a commit\&.
.SH "OPTIONS"
.PP
\fI<pathspec>\fR\&.\&.\&.
.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
\fB\-n\fR, \fB\-\-dry\-run\fR
.RS 4
Don\(cqt actually add the file(s), just show if they exist and/or will be ignored\&.
.RE
.PP
\fB\-v\fR, \fB\-\-verbose\fR
.RS 4
Be verbose\&.
.RE
.PP
\fB\-f\fR, \fB\-\-force\fR
.RS 4
Allow adding otherwise ignored files\&.
.RE
.PP
\fB\-\-sparse\fR
.RS 4
Allow updating index entries outside of the sparse\-checkout cone\&. Normally,
\fBgit\fR
\fBadd\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
\fB\-i\fR, \fB\-\-interactive\fR
.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
\fB\-p\fR, \fB\-\-patch\fR
.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\fR
\fB\-\-interactive\fR, but bypasses the initial command menu and directly jumps to the
\fBpatch\fR
subcommand\&. See
\(lqInteractive mode\(rq
for details\&.
.RE
.PP
\fB\-U\fR\fI<n>\fR, \fB\-\-unified=\fR\fI<n>\fR
.RS 4
Generate diffs with
\fI<n>\fR
lines of context\&. Defaults to
\fBdiff\&.context\fR
or 3 if the config option is unset\&.
.RE
.PP
\fB\-\-inter\-hunk\-context=\fR\fI<n>\fR
.RS 4
Show the context between diff hunks, up to the specified
\fI<number>\fR
of lines, thereby fusing hunks that are close to each other\&. Defaults to
\fBdiff\&.interHunkContext\fR
or 0 if the config option is unset\&.
.RE
.PP
\fB\-e\fR, \fB\-\-edit\fR
.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
\fB\-u\fR, \fB\-\-update\fR
.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
\fB\-A\fR, \fB\-\-all\fR, \fB\-\-no\-ignore\-removal\fR
.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
\fB\-\-no\-all\fR, \fB\-\-ignore\-removal\fR
.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
\fBgit\fR
\fBadd\fR
\fI<pathspec>\fR\&.\&.\&. was a synonym for
\fBgit\fR
\fBadd\fR
\fB\-\-no\-all\fR
\fI<pathspec>\fR\&.\&.\&., i\&.e\&. ignored removed files\&.
.RE
.PP
\fB\-N\fR, \fB\-\-intent\-to\-add\fR
.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\fR
\fBdiff\fR
and committing them with
\fBgit\fR
\fBcommit\fR
\fB\-a\fR\&.
.RE
.PP
\fB\-\-refresh\fR
.RS 4
Don\(cqt add the file(s), but only refresh their stat() information in the index\&.
.RE
.PP
\fB\-\-ignore\-errors\fR
.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
\fB\-\-ignore\-missing\fR
.RS 4
This option can only be used together with
\fB\-\-dry\-run\fR\&. 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
\fB\-\-no\-warn\-embedded\-repo\fR
.RS 4
By default,
\fBgit\fR
\fBadd\fR
will warn when adding an embedded repository to the index without using
\fBgit\fR
\fBsubmodule\fR
\fBadd\fR
to create an entry in \&.\fBgitmodules\fR\&. This option will suppress the warning (e\&.g\&., if you are manually performing operations on submodules)\&.
.RE
.PP
\fB\-\-renormalize\fR
.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
\fICRLF/LF\fR
line endings\&. This option implies
\fB\-u\fR\&. Lone CR characters are untouched, thus while a
\fICRLF\fR
cleans to
\fILF\fR, a
\fICRCRLF\fR
sequence is only partially cleaned to
\fICRLF\fR\&.
.RE
.PP
\fB\-\-chmod=\fR(\fB+\fR|\fB\-\fR)\fBx\fR
.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
\fB\-\-pathspec\-from\-file=\fR\fI<file>\fR
.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
\fILF\fR
or
\fICR/LF\fR\&. 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
\fB\-\-pathspec\-file\-nul\fR
.RS 4
Only meaningful with
\fB\-\-pathspec\-from\-file\fR\&. Pathspec elements are separated with
\fINUL\fR
character and all other characters are taken literally (including newlines and quotes)\&.
.RE
.PP
\fB\-\-\fR
.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
\fBgit\-*\&.sh\fR
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
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
\fBHEAD\fR
and index (i\&.e\&. what will be committed if you say
\fBgit\fR
\fBcommit\fR), and between index and working tree files (i\&.e\&. what you could stage further before
\fBgit\fR
\fBcommit\fR
using
\fBgit\fR
\fBadd\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
\fBfoo\&.png\fR
has differences from
\fBHEAD\fR
(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,
\fBadd\-interactive\&.c\fR, 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 \- go to the next undecided hunk, roll over at the bottom
J \- go to the next hunk, roll over at the bottom
k \- go to the previous undecided hunk, roll over at the top
K \- go to the previous hunk, roll over at the top
s \- split the current hunk into smaller hunks
e \- manually edit the current hunk
p \- print the current hunk
P \- print the current hunk using the pager
? \- 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
\fBHEAD\fR
and index)\&.
.RE
.SH "EDITING PATCHES"
.sp
Invoking \fBgit\fR \fBadd\fR \fB\-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 \fBHEAD\fR 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
\fBadd\&.ignoreErrors\fR, \fBadd\&.ignore\-errors\fR (deprecated)
.RS 4
Tells
\fBgit\fR
\fBadd\fR
to continue adding files when some files cannot be added due to indexing errors\&. Equivalent to the
\fB\-\-ignore\-errors\fR
option\&.
\fBadd\&.ignore\-errors\fR
is deprecated, as it does not follow the usual naming convention for configuration variables\&.
.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
