做git add的含义。当git add -u就足够了吗?

时间:2016-03-13 14:06:26

标签: git

(使用Git 2.7.2) 如果我在一天的工作之后更新了一些我想提交的跟踪文件,那么适当的登台命令将是git add -u。对?但有没有习惯性地做git add .的任何后果,只是为了弥补我可能添加了一个新文件并且不想忘记开始跟踪它的可能性?总是做git add .是否有任何不利之处?我是否会膨胀回购规模或者污染数据库"等?

1 个答案:

答案 0 :(得分:0)

git add .将搜索当前目录和子目录,查找可添加的文件,然后添加它们。

git add -u(没有路径规范),因为git版本2.0,梳理索引以查找要添加的文件,如果您位于子目录中,则包括.以上的目录你的存储库。 (在早于2.0的git版本中,git add -u在结尾处有一个隐含的.,因此会查看.上方的目录。)

您已经注意到git add .将添加git add -u不会的新文件。 .从当前目录(可能不是顶级)开始的事实是这里唯一的其他真正区别。 (如果您有一个非常大的工作树,由于不同的搜索策略,您可能会看到一些与CPU时间/磁盘活动相关的差异。)

请注意,下一个git commit进入存储库的内容由索引(登台区域)内容决定,您可以随时检查(git status或{{1} }, 例如)。在大多数情况下,您并不需要担心存储库膨胀。 (如果git ls-files添加了一个巨大的文件,例如巨大的二进制文件或数据库,那么你会看到临时膨胀的一种情况,然后你git add .并添加到git rm --cached文件。这是因为它是.gitignore步骤实际上将底层blob对象写入存储库。但是,如果blob未被引用 - 因为它将在git add之后 - 它将在下一个垃圾收集时消失发生在git rm --cached时间之后,在这种情况下默认为14天。)