返回顶部
本页目录

add

TIP

使用git add时,可能会遇到一些潜在的问题,例如意外添加了不想提交的文件,或者忘记添加应该包含在提交中的文件。为了防止这些问题,在运行git add之前,应该使用git status命令检查哪些文件尚未暂存以进行提交。此外,您可以使用git-diff命令来查看当前版本和即将提交的版本之间的差异。如果您在使用git add时确实犯了错误,可以使用git reset命令删除您添加的更改。

将内容从工作目录添加到暂存区(或称为索引(index)区),以备下次提交

语法

                            
  • git add <dir/file>

实例

添加指定文件到暂存区

                            
  • git add [file1] [file2] ...

添加指定目录到暂存区,包括子目录

                            
  • git add [dir]

添加当前目录的所有文件到暂存区

                            
  • git add .

添加每个变化前,都会要求确认,对于同一个文件的多处变化,可以实现分次提交

                            
  • git add -p

Documentation 目录及其子目录下的所有 *.txt 文件添加内容

                            
  • git add Documentation/\*.txt

所有 git-*.sh脚本中添加内容

                            
  • git add git-*.sh

选项

<pathspec>…​

要添加内容的文件。可以指定Fileglob(例如 *.c )来添加所有匹配的文件

要添加修改的文件或新文件,但忽略已删除的文件,请使用 --no-all 选项。

-n,--dry-run

实际上不要添加文件,只是显示它们是否存在和/或将被忽略。

-v,--verbose

Be verbose

-f,--force

允许添加其他忽略的文件。

--sparse

允许更新稀疏结帐锥之外的索引条目

-i,--interactive

以交互方式将工作树中的修改内容添加到索引中

-p,--patch

在索引和工作树之间交互式地选择补丁块,并将其添加到索引中。这让用户有机会在添加修改内容到索引之前查看其差异。

这有效地运行 add --interactive ,但绕过初始命令菜单并直接跳转到 patch 子命令

-e,--edit

在编辑器中打开diff与index,让用户编辑。关闭编辑器后,调整hunk头,并将补丁应用到索引上。

-u,--update

在索引已经具有与<pathspec>匹配的条目的地方更新索引。这会删除和修改索引条目以匹配工作树,但不会添加任何新文件。

如果在使用 -u 选项时未给出<pathspec> ,则会更新整个工作树中的所有跟踪文件(旧版本的Git用于将更新限制为当前目录及其子目录)。

-A,--all,--no-ignore-removal

不仅在工作树具有与<pathspec>匹配的文件的地方,而且在索引已经具有条目的地方,更新索引。这将添加,修改和删除索引条目以匹配工作树。

如果在使用 -A 选项时未给出<pathspec> ,则会更新整个工作树中的所有文件(Git的旧版本用于将更新限制为当前目录及其子目录)。

--no-all,--ignore-removal

通过添加索引未知的新文件和在工作树中修改的文件来更新索引,但忽略已从工作树中删除的文件。当不使用时,此选项为no-op。

这个选项主要是为了帮助习惯了旧版本 Git 的用户,他们的git add <pathspec>...git add --no-all <pathspec>...​的同义词,即忽略删除的文件

-N,--intent-to-add

仅记录以下事实:以后将添加路径。路径的条目放置在索引中,没有内容。除其他功能外,这对于使用 git diff 显示此类文件的未暂存内容,并使用 git commit -a 提交它们很有用。

--refresh

不要添加文件,而只是刷新它们在索引中的stat()信息。

--ignore-errors

如果由于索引错误而无法添加某些文件,请不要中止该操作,而要继续添加其他文件。该命令仍将以非零状态退出。可以将配置变量 add.ignoreErrors 设置为true,以使其成为默认行为。

--ignore-missing

这个选项只能和--dry-run一起使用。通过使用这个选项,用户可以检查是否会忽略任何给定的文件,无论它们是否已经存在于工作树中。

--no-warn-embedded-repo

默认情况下,当将嵌入式存储库到索引而不使用git submodule add在 .gitmodules 中创建条目时, git add 将发出警告。此选项将禁止显示警告(例如,如果您正在手动对子模块执行操作)。

--renormalize

对所有跟踪的文件重新应用“清理”过程,以强制将它们再次添加到索引中。 core.autocrlf 配置或 text 属性后很有用,以便更正添加了错误 CRLF/LF 行结尾的文件。此选项暗示 -u 。单独的 CR 字符未被触及,因此当 CRLF 清除为 LF 时,CRCRLF 序列仅部分清除为 CRLF。

--chmod=(+|-)x

覆盖新增文件的可执行位。可执行位只在索引中改变,磁盘上的文件保持不变。

--pathspec-from-file=<file>

Pathspec在 <file> 中而不是命令行args中传递。

--pathspec-file-nul

仅对 --pathspec-from-file 有意义。Pathspec元素用NUL字符分隔,所有其他字符按字面意义使用(包括换行符和引号)。

--

这个选项可以用来将命令行选项从文件列表中分离出来,(当文件名可能被误认为是命令行选项时很有用)。