【发布时间】:2011-01-12 12:31:34
【问题描述】:
我假设两者都以相同的方式工作。两者都将每个文件添加到索引中。但我似乎错了。
-
git add .和git add -u有什么区别?
【问题讨论】:
我假设两者都以相同的方式工作。两者都将每个文件添加到索引中。但我似乎错了。
git add . 和 git add -u 有什么区别?【问题讨论】:
如手册所说:git add . 将添加当前目录中的所有文件,而git add -u . 将仅添加已被跟踪的文件。
【讨论】:
add -u 也会进行删除。
它是 git 陷阱之一mentioned here(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 2.0, git add -A is default。
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, for upcoming 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 2.0 到来之前开始训练他们的手指明确说出“git add -u .”。
正如我在“e”中提到的
【讨论】:
.(pathspec) 与 Git 2.x 一起使用。我测试时发现它有效。
git add . 将所有更改添加到索引,因为 -A 选项是默认选项。检查这个答案stackoverflow.com/a/26343584/524588
【讨论】: