git add [--all|-A]
命令彷佛与git add .
相同git add .
。 这个对吗? 若是没有,它们有何不一样? git
在Git 2.0中, git add -A
是默认值: git add .
等于git add -A .
。 github
git add <path>
如今与“git add -A <path>
”相同,所以“git add dir/
”将注意到您从目录中删除的路径并记录该删除。
在旧版本的Git中,“git add <path>
”用于忽略删除。 ide若是您确实愿意,能够说“
git add --ignore-removal <path>
”仅在<path>
添加添加或修改的路径。 学习
git add
就像git add :/
( 从顶部git repo文件夹添加全部内容 )。
请注意,git 2.7(2015年11月)将容许您添加一个名为“ :
”的文件夹!
参见Junio C gitster
( gitster
) 提交的29abb33 (2015年10月25日) 。 ui
请注意,在谈论git add .
时, 从git 2.0开始(2014年第一季度或第二季度) git add .
(工做树中的当前路径),您必须使用' .
在其余git add
命令。 spa
这意味着: 命令行
git add -A .
等效于git add .; git add -u .
code
(请注意git add -A
和git add -u
的额外' .
') 递归
由于git add -A
或git add -u
会在整个工做树上运行(仅从git 2.0开始),而不只仅是在当前路径上运行。 索引
这些命令将在Git 2.0中的整个树上运行,以与“
git commit -a
”和其余命令保持一致 。 由于没有机制可使“git add -u
”表现得像“git add -u .
”,因此对于那些习惯于“git add -u
”(无pathspec)的人来讲,仅更新路径索引很是重要在当前子目录中开始训练他们的手指,使其在Git 2.0出现以前明确表示“git add -u .
”。当这些命令在没有路径规范的状况下运行时,以及在当前目录以外进行本地更改时,都会发出警告 ,由于在这种状况下,Git 2.0中的行为将不一样于今天的版本。
一个更简化的快速答案:
git add -A
git add .
git add -u
这是用于快速理解的表:
Git版本1.x :
Git版本2.x :
长格式标志:
git add -A
等同于git add --all
git add -u
等效于git add --update
进一步阅读:
-A
如今是默认值 --ignore-removal
旧行为 git add -u
和git add -A
在整个树上运行 所以对于git 2,答案是:
git add .
和git add -A .
在当前目录中添加新的/修改的/删除的文件 git add --ignore-removal .
在当前目录中添加新文件/修改过的文件 git add -u .
在当前目录中添加修改/删除的文件 最后,我想我明白了,很是感谢你们。 我但愿这能够增长一些清晰度。
!The syntax is git add <limiters> <pathspec> ! Aka git add (nil/-u/-A) (nil/./pathspec)
限制符能够是-u或-A或nil。
Pathspec能够是文件路径或点“。”。 指示当前目录。
有关git如何“添加”的重要背景知识。
如今,有了这些知识,咱们能够应用上面的答案。
限制器以下。
pathspec以下。
git add -A .
git add -u .
总之,个人政策是