将文件内容添加到索引。
基本语法:
1 | git add [-n] [<pathspc>...] |
描述:
这个命令使用工作区的内容更新索引,来准备一下次提交暂存的内容。它通常使用已存在路径的所有内容作为一个整体添加,但是也可以使用相关选项来添加一部分内容。
索引(index)存储了工作区的快照。这个快照用来做下一次commit。
git add命令默认不添加忽略的文件。如果忽略的文件在命令行显式地指定,git add将失败。但是通过目录递归或者问价名通配找到的忽略文件将被忽略,而不产生错误。git add使用-f选项,可以添加忽略的文件。
选项:
<pathspec>...
要添加的文件,fileglobs (e.g. *.c)用来添加所有匹配的文件。如果是一个目录,则目录作为一个整体而更新,修改的文件将被添加,新的文件将被添加,删除的文件,将从index删除。注意:老版本的Git忽略删除的文件,使用--no-all选项来只添加修改的和新的文件,而忽视删除的文件。
注意:至少需要指定一个路径,git不会自动使用当前路径。
-n
--dry-run
不实际添加,只是显示是否存在或者是否被忽略。
-f
--force
允许添加被忽略的文件。
-u
--update
更新索引,这里的更新的意思是不添加,pathspec中的被tracking的文件,如果修改了将被添加,如果被删除了,将从index中删除。如果没有指定pathspec,则所有工作区被tracked的文件被更新。相当于指定当前目录。
-A
-all
--no-ignore-removal
更新索引,更新那些索引中有的,以及<pathspec>指定的。这将添加、修改、移除索引条目来匹配工作区。
如果没有指定<pathspec>,工作区的所有文件被更新。
--no-all
--ignore-removal
根据<pathspec>更新索引(添加或更新)。但是如果tracked的文件从索引中删除,忽略之。
-N
--intent-to-add
记录我将要添加这个文件,这个操作将添加一个没有内容的条目。便于我们使用git diff等命令。
Git version 2.x
参考:
https://stackoverflow.com/questions/572549/difference-between-git-add-a-and-git-add