我假设两者都以相同的方式工作。两者都将每个文件添加到索引中。但我似乎错了。
git add .
和有什么区别git add -u
?
它是这里提到的 git 陷阱之一(Git 2.0 之前)。
git add .
只添加那里的内容,而不是已删除的内容(如果已跟踪)。
git add .
git commit
git status
//hey! why didn't it commit my deletes?, Oh yeah, silly me
git add -u .
git commit --amend
git add -A
会照顾这两个步骤...
git add <path>
现在与“”相同git add -A <path>
,因此“git add dir/
”会注意到您从目录中删除的路径并记录删除。
在旧版本的 Git 中,“git add <path>
”用于忽略删除。如果你真的想要,你可以说“
git add --ignore-removal <path>
”来只添加添加或修改的路径。<path>
警告(git1.8.3 April 2013,即将推出的 git2.0)。
我已将答案修改为git add -u .
,而不是git add -u
.:
git add -u
将在 Git 2.0 中对整个树git commit -a
进行操作,以与 " " 和其他命令保持一致。
因为没有机制让“git add -u
”表现得像“git add -u .
”,所以对于那些习惯于“git add -u
”(没有路径规范)只为当前子目录中的路径更新索引的人来说,开始训练他们的手指明确地说“git add -u .
”是很重要的当他们的意思是在 Git 2.0 到来之前。
正如我在“ e ”中提到的
就像手册说的:git add .
将添加当前目录中的所有文件,而git add -u .
只会添加那些已经被跟踪的文件。